From nobody Sun Nov 16 00:54:50 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1744297042; cv=none; d=zohomail.com; s=zohoarc; b=YUWZ1Kk3ccxZ+6YTN6+2ntdQHFC6xwwPcs3XIVWKN0a43euKd1xGgXPBvGIuU/6JjlPXhbQ2BoWTDkkzWRiEUJP4anj0GGVZwHn6TIJdBGFN3S7KJSOjG61SGxrpdt/JHHmOKNs6OmB1vD20eETBaN3cls5CVPEW7KkyaeJx5YQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1744297042; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=feZuaxrFBmW/7qEu/+5shM64Px/4u1yOOiSmxUSEtqg=; b=kTi/vEhKxAbFqf7PR+dBCSUOM2AHnV0AQQ8bMAf2dSRzwIO5Egu2rEPUvMVWIl+ImU3jPfdskozuYpEA0dMAQvbM/vOmmxUyzY+UQTIIZrIKlgQmT0IohbzFDUMquC8cftlZhQBqPlHjPpQYsmGSBhyB7/TtfMtA+JAeNO/kPvg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1744297042926501.7375534412398; Thu, 10 Apr 2025 07:57:22 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.945823.1343960 (Exim 4.92) (envelope-from ) id 1u2tL0-0006yd-HO; Thu, 10 Apr 2025 14:57:06 +0000 Received: by outflank-mailman (output) from mailman id 945823.1343960; Thu, 10 Apr 2025 14:57:06 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u2tL0-0006yW-ET; Thu, 10 Apr 2025 14:57:06 +0000 Received: by outflank-mailman (input) for mailman id 945823; Thu, 10 Apr 2025 14:47:03 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u2tBH-0002gy-5x for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 14:47:03 +0000 Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com [2a00:1450:4864:20::22b]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id a9269100-161a-11f0-9ffb-bf95429c2676; Thu, 10 Apr 2025 16:47:01 +0200 (CEST) Received: by mail-lj1-x22b.google.com with SMTP id 38308e7fff4ca-30bee1cb370so7246421fa.1 for ; Thu, 10 Apr 2025 07:47:01 -0700 (PDT) Received: from localhost.localdomain ([79.134.198.58]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-30f465f77f0sm5397991fa.94.2025.04.10.07.46.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Apr 2025 07:46:59 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: a9269100-161a-11f0-9ffb-bf95429c2676 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744296421; x=1744901221; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=feZuaxrFBmW/7qEu/+5shM64Px/4u1yOOiSmxUSEtqg=; b=J47DkdVUsMqRQ+sec2xapJ2nPzaBDTcGbfA0Lqg+7d1RMHLSoGGmrSwMgsR4szWg2e qB1lZRXPo1SOo9zGg6SMbVZwBk5mf5grEgDbmN90dYRt5e3Oan2SGZudgBDzmfoJiGn0 FPm33b/nzAHVyvjeMyS/tXbfirIXy2a4VX46Pq2fOwPyPlDWuSK+6yiMrEtmurKGlM4p x2kHQNPNwBbY6s6wgJhjb/SS+EHhPdkNYw6+zZ4Ae4ZOm9kSHvM/tLzvlzY/KuGPSXoA uBu0H4ja96YF+LrFOpPF6x6WlVtc/Nk5HbulA3imA3C5HZPS1Hpr7idXW5UoeMmZ9D7+ 6FCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744296421; x=1744901221; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=feZuaxrFBmW/7qEu/+5shM64Px/4u1yOOiSmxUSEtqg=; b=HOuK+0VpYIgbkgbCOSKL+1hysxQcZbas7i/kCKsXxQXM8/xeXwxXWHB3kMeqbiEAjL l3xNw8WoAd2PpE5tNhaU2rYD9sKQ2g18+ho1UyLEFD5bvtAOXMfgzu19wLSKsWMlnboT P4K5Ykhot3z8Zjp1TXuYWLvjlz4DTlPPw+5skD7RYaQAhx0A7prcF/E9Xu550Tbtzi3A SrmpvRABlR9iW7TsbiIS1phgD847P0ZTMOgWsJaZ4IYHtgHvsD1HLwSSAzsBQ/Swls1y G5rhhtQByII60VKUoxlJSERoJPRTf8qN7Q5kQuBgD06s2r0gIzqE1FRbr0ZA6JwVY2I5 zWyQ== X-Forwarded-Encrypted: i=1; AJvYcCVihXI45YxcyhcPMI1qVZ/uACDXJvI+uRwZ/kptcLcmKtkr5buCpGuVGfb0czo0TSL/o09xwgPK/UI=@lists.xenproject.org X-Gm-Message-State: AOJu0Yx+V5lYteK6WHg3yz1hzyslvB5hfgnP1rAQIsKOI7BL+GtqQYZY FOgyimXu/cSzBxYFCUnDcioAAT9EWZ2AV1PAeiVquWwKITRPrBZd X-Gm-Gg: ASbGncvwSFYGan9+4jhiJ3TScwZQFQWQyxYUy+XEFbprNXXrY7IxT+XroAgyCE8Yb1+ h85FZjfByxzDxCE21k2WdOxsiZk7aV64ljSaA7NNx/CrVtja/Z0BEVEbN2uFpn9SXxq7IPCsohl F6jpiJAIAA+4DD9HopUnh6qp+V2MrvhaCu/x1sZ+DZP3DNadtvrnKdx5vV2PncQPoFDWK0f34yv 6xMJcm3S9IGaDxT6aEJbBsiHqYkA6q3nkVbY+YDIrgacLTvPAdy1OFjWIm2rpFu2L3bb9uN2RIV g0weuq77acH7aBcvd6dNzEd9fGRyFb1Bb1nkaEAhAJIYP/rbDSV4lSZXVqlIQbT6jI3Glw== X-Google-Smtp-Source: AGHT+IHps2ex7WUHYRh1F6pfalqAS+t3xoH5n99yd6RdsrQzd/R4jAa7Rvgik+13jW6mwMSpuV3Rdg== X-Received: by 2002:a2e:a98c:0:b0:30d:62a6:4431 with SMTP id 38308e7fff4ca-3103ea9cad7mr8840891fa.9.1744296420337; Thu, 10 Apr 2025 07:47:00 -0700 (PDT) From: Aleksandr Partanen To: qemu-devel@nongnu.org Cc: Stefano Stabellini , "Edgar E. Iglesias" , xen-devel@lists.xenproject.org, Paul Durrant , Anthony PERARD , Aleksandr Partanen Subject: [PATCH] xen: mapcache: Fix finding matching entry Date: Thu, 10 Apr 2025 17:46:04 +0300 Message-Id: <20250410144604.214977-1-alex.pentagrid@gmail.com> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1744297044703019100 Content-Type: text/plain; charset="utf-8" If we have request without lock and hit unlocked or invalid entry during the search, we remap it immediately, even if we have matching entry in next entries in bucket. This leads to duplication of mappings of the same size, and to possibility of selecting the wrong element during invalidation and underflow it's entry->lock counter Signed-off-by: Aleksandr Partanen Reviewed-by: Edgar E. Iglesias Reviewed-by: Stefano Stabellini --- hw/xen/xen-mapcache.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c index 698b5c53ed..2c8f861fdb 100644 --- a/hw/xen/xen-mapcache.c +++ b/hw/xen/xen-mapcache.c @@ -376,12 +376,12 @@ tryagain: =20 entry =3D &mc->entry[address_index % mc->nr_buckets]; =20 - while (entry && (lock || entry->lock) && entry->vaddr_base && - (entry->paddr_index !=3D address_index || entry->size !=3D cac= he_size || + while (entry && (!entry->vaddr_base || + entry->paddr_index !=3D address_index || entry->size !=3D cach= e_size || !test_bits(address_offset >> XC_PAGE_SHIFT, test_bit_size >> XC_PAGE_SHIFT, entry->valid_mapping))) { - if (!free_entry && !entry->lock) { + if (!free_entry && (!entry->lock || !entry->vaddr_base)) { free_entry =3D entry; free_pentry =3D pentry; } --=20 2.39.5