From nobody Mon Sep 28 01:13:02 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1786203104; cv=none; d=zohomail.com; s=zohoarc; b=J0B14nb6uMoJvAizA9XRM5inPRvB40sCQ0zet90QTfmbMuUc3YYjt8FCicKPNmcnSCkcJWHH/FcDVp5ivsUzgrAjBaGt+yQd4hlYJ/8F16hECIGkG/g7MadTU0GWA5Wi2pOPaaAkMwwb7Tjr5tk9ojdhDfM5m3kkZwwGo4WGTJM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786203104; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vhZR8OvPYc9FUcIBxMXPkD7VFNC17pB7loT5n+cu48s=; b=gkE20j8vyoBTW/nIsycSxQgfriHF4XNxrnRS7G+CUzEd3TiBhL0+yrV7zc7Xg7YmMEdIyL9KxlRyuNjJK0TXQj8N9skm1JsF5mu6anPSi7OFdBu/ikKq3rz7HVyAk55wqk+87e4Fnm1ILYByj5ZfAY79vmwS4f9vG5ylJ+AjaCQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17862031048348.25372422880946; Sat, 8 Aug 2026 08:31:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wsj0r-0001tb-AX; Sat, 08 Aug 2026 11:31:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wsj0o-0001sh-QF for qemu-devel@nongnu.org; Sat, 08 Aug 2026 11:31:03 -0400 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wsj0n-0006Y0-7j for qemu-devel@nongnu.org; Sat, 08 Aug 2026 11:31:02 -0400 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-383cb94f742so489694a91.3 for ; Sat, 08 Aug 2026 08:31:00 -0700 (PDT) Received: from MacLin.attlocal.net ([2600:1700:e140:14d0:50d2:25db:c95b:492a]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315bebee8d0sm19978586eec.24.2026.08.08.08.30.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Aug 2026 08:30:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786203059; x=1786807859; darn=nongnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=vhZR8OvPYc9FUcIBxMXPkD7VFNC17pB7loT5n+cu48s=; b=rBHC5FEfhLRJUo7ICdnywY7wwct7/ech5L9HpT8wpIBpDdhfO5deu472ntLYpAi7Og zQS7z19kZ23aBdJ0JFd+m2bFpjw93ZIFts2vFeZvg0O4vPGp/gIYJNJL0yGbLj4Z1Bjy Afkk7oET+pwteX8+dFMJKeVrVawsPFeS4Q0PNT1cTz3RPj5tKOqDRCRwt5vO+CxYriIK OOGfOgtzn8SmfNax9UXsI7SxFB2XcRpeaJThTty3BF20Oivg5acoH65LO09C6NYmYGBI RN2odWLckZWInAeo9uDAVxmM7KOdTeqRvCecAR5Hw7CM29Tglo9tKhM0eJQFoG93seRj 5JNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786203059; x=1786807859; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=vhZR8OvPYc9FUcIBxMXPkD7VFNC17pB7loT5n+cu48s=; b=MK/HbK7Hrjb7w9N0vMbOa28LBOlZQRu5Sye/bKjkzT8UgjFnAE8qDjxMksHDHUXoqL Hw2jFUysUxkqAy8LHwWvSbwC7LYxtyXOMwMs5bPdhKxm8qdJPQ4w9zPbMXTNzgCdJXQ3 7ZpnJ0wEWQ+YnB/l18RgoBi6UFXU/Z6XZvcTa9wIiXLb9rAgL3E2IPxu0l9u0TGoARsy 9XLpD87kewTmwcju1ulOIfOnIkTyIia5Zjpaj0KdK/EONlWdktCuhMDn4fYb0BOSyuul /FNh/LkPiP+pmrY82cJ26caUHLLU1ZLjZf5d6e31DepNMB10nFTNCTC9zlkSqY9M05ft rcjg== X-Gm-Message-State: AOJu0Yw7B9f1rR28q59apw+dYejyQ5wA5Wpl0YvbWhiXP0V1F80Tj6br TDWsJRT2E6XoF4Vo1oOIIwNlhyyr1mEodYVWpXEeRg+YeATe8bLYg/0qZW6u5hne X-Gm-Gg: AR+sD12G5KLxf9evDYQotTfr0boHNFXDfHouZs7nzxHCjGv9qnSfTJe2NsrE10LmzC+ zRxlIRXLigHoNg80OwU5E2KOV2aEr+t8Ubksw7RuuRV3V8mgK1qThpvBPRyc/xus6XLU5ggwox7 i7PVqIrgnj4I0GChNOGToH+WDFZ2nZfKj/IeqZLV1umJAlPJONNcQOKroeoQ3QlYBKyvSH1yVUk k/djrTuep5oGqjpJfK0pAvmQjk+ZasqcXwm1iiPD7K6Cn2lTIAH4OJtGlDn94bxlWMvLQDvJLYC nppvsUf11sSF/auZMmry0T0pzI7dFE07mE9qdVqWn+Nai+wkiUXZJZLw14NTz6Z2e2Z9sZ0zZvQ MDhDcsuAIJXQ9TMO0TlFxeQCkceFCm2sqRjXcbKx5GEGa8kitbMD5RQlQL1KL/HsGhRJ9VOJ2If lj6eCW05GVAr7ddUDrvGDM74kfHNad0cKQiUFAyQdHVi+FhgY76+qoZRq8dmwoFHKwS74ioXSkH 2gL X-Received: by 2002:a17:90b:1d4f:b0:38f:7f60:ba35 with SMTP id 98e67ed59e1d1-3903c5381d6mr29994555a91.5.1786203058796; Sat, 08 Aug 2026 08:30:58 -0700 (PDT) From: Connor Kite To: qemu-devel@nongnu.org Cc: Hanna Czenczek , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Stefano Garzarella , "Michael S. Tsirkin" , Stefan Hajnoczi , Akihiko Odaki , Connor Kite Subject: [PATCH] hw/virtio/vhost-shadow-virtqueue: range boundary in translation Date: Sat, 8 Aug 2026 08:30:57 -0700 Message-ID: <20260808153057.2641831-1-connorkite@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1029; envelope-from=connorkite@gmail.com; helo=mail-pj1-x1029.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1786203107694158500 Content-Type: text/plain; charset="utf-8" iova-tree expects inclusive range sizing when maps are allocated or searche= d. Currently, svqs use exclusive sizing when searching their vhost-iova-tree for a match to the region to be translated. This could lead to errors if the region to be translated is at the edge of an iova region. Fix this by reducing `needle.size` by 1 in vhost_svq_translate_addr to bring it in line with DMAMap and iova-tree convention. This patch is an updated version of one from the patch series "vhost-user: isolated memory". The patch has been isolated from the series as it is not tightly coupled with the rest of the series. Signed-off-by: Connor Kite Reviewed-by: Stefan Hajnoczi --- hw/virtio/vhost-shadow-virtqueue.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/hw/virtio/vhost-shadow-virtqueue.c b/hw/virtio/vhost-shadow-vi= rtqueue.c index bcb7f2ffc7..c8831d52be 100644 --- a/hw/virtio/vhost-shadow-virtqueue.c +++ b/hw/virtio/vhost-shadow-virtqueue.c @@ -99,19 +99,25 @@ static bool vhost_svq_translate_addr(const VhostShadowV= irtqueue *svq, const DMAMap *map; DMAMap needle; =20 + if (unlikely(iovec[i].iov_len =3D=3D 0)) { + qemu_log_mask(LOG_GUEST_ERROR, + "Zero-sized buffer made available by guest"); + return false; + } + /* Check if the descriptor is backed by guest memory */ if (gpas) { /* Search the GPA->IOVA tree */ needle =3D (DMAMap) { .translated_addr =3D gpas[i], - .size =3D iovec[i].iov_len, + .size =3D iovec[i].iov_len - 1, /* Inclusive */ }; map =3D vhost_iova_tree_find_gpa(svq->iova_tree, &needle); } else { /* Search the IOVA->HVA tree */ needle =3D (DMAMap) { .translated_addr =3D (hwaddr)(uintptr_t)iovec[i].iov_base, - .size =3D iovec[i].iov_len, + .size =3D iovec[i].iov_len - 1, /* Inclusive */ }; map =3D vhost_iova_tree_find_iova(svq->iova_tree, &needle); } --=20 2.43.0