From nobody Sun Jul 26 11:03:39 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782907929; cv=none; d=zohomail.com; s=zohoarc; b=YnwXPtbBaY3rZ1Gp+cSraZP9Ys1Z6L63s0fR4MZDFFiKgXEutD+lPriRUcFtBr+jMnWIq06FvS1VRCRrf+UkitFXeRgjdVPQDBCWxI95nH1hl8bJ/UIIP003ZieB4j+tsVL4aAznXNsV6EuhiVIyT/Hz5iAPMIFXkgCxKopnrRE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782907929; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=e/zTLleUm5tdJd/waMYjqqRc9jTaOdCiJwO+Zrw72nA=; b=McE+C5+GsauHXmDj0xz9/ld6VX4Mt1ofA3KydiSWIwUVw6uA9pmyapvDnqjqvJMDrpb+e2cKu5jpahbdeleotw9KZKg9PJRIOn3+pjhLiPh0ZjOzSLa1j4qRtQDyQ+dGAB7uo0KbPVAS6OAm+/1IVb0nm8xmNnlJHIvGRSqGbHU= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17829079297621009.0527124106242; Wed, 1 Jul 2026 05:12:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wetmq-0002OX-D6; Wed, 01 Jul 2026 08:11:28 -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 1wetmp-0002Ko-1L for qemu-devel@nongnu.org; Wed, 01 Jul 2026 08:11:27 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wetmn-0002eQ-CW for qemu-devel@nongnu.org; Wed, 01 Jul 2026 08:11:26 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 661A8VL9744114 for ; Wed, 1 Jul 2026 12:11:24 GMT Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f4x0thd11-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Jul 2026 12:11:24 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-51bff5c7035so11113511cf.2 for ; Wed, 01 Jul 2026 05:11:24 -0700 (PDT) Received: from QCOM-UWl2o8bcGT.qualcomm.com ([189.79.21.40]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8f3611df020sm19794706d6.30.2026.07.01.05.11.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jul 2026 05:11:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=e/zTLleUm5t dJd/waMYjqqRc9jTaOdCiJwO+Zrw72nA=; b=S96aI0bU1Mgjq3haPCpinyZO+cD ChLtlXSQEkOLpWLezl+pCnUGQDIMgXj8Rb16z9ZEnHjs07mqjtX6LR6Q49bPWzar UryZ4NShiZ93bFnul9RTP89Zv7kfmXCalrftzjSDEE75t+Na1ffYXCXVicdwJWZT qFN2JxjpCl88pcqb7bEY6lurKWY8MGegznQEsXN6OCyldoKYAsBEoQYeozzLFujM 4RJsPL4XzgzJ0wuW1XFX19qvk83leXA1MCnyt67IfB8H4t0vjdCdVBwku3Rltsix H6yL5c/1vx98jTaA5j2JOOCwiVIQNRR2nxv74Ikz4ZMMGKJ+nvmJ1kuE58Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782907884; x=1783512684; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=e/zTLleUm5tdJd/waMYjqqRc9jTaOdCiJwO+Zrw72nA=; b=O0c9Jgd4upeuGMBn98ynBizZw/ViGZeJlTQCgHocEY7AdcLiJz8nMCfJd/SJ/d0Age Y0OgDJuV/g5c2VRTA450kdXBOPJH8CUH2g/+1y8k0umOvBvKMzMoAkr++E/Al/hn53iq kkTvNkzHxHruDXCKQfyzKsfzOQbEp5vedamGdrxbaeSeyabo5je3bjJZH77ucpgyAxqQ SRPuQAA4+CHMuzWySUixpek8NJP4CTKKB/aR+QOdO7YyQwNunFnvKroB4qWDe16/cywf OAPKFiSF4UCGlF2zDnPpx5jB4oYHq+1NAgAtFwyfk0w8i/OQxzUshlXfePdP28gP9rtA ncRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782907884; x=1783512684; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=e/zTLleUm5tdJd/waMYjqqRc9jTaOdCiJwO+Zrw72nA=; b=ig5/EIwdHINaxB2hXop04iZ3m7EqlPMYevPlZdCqilVH+dqZ8qhIEuxzLGAjtBTasT mNwzFEiPATZtFM46T08T/Fl5xm61nMmuE6B19F1ZsKSgEFZS/80eGWU2rfc2W0jCMavT wQjUFjQSbyZM/UIf89ARESIn714OaDFoicHTt2ewk+yB2/W4kSPYHkDUVx8nF3/0wSyr fs8mSCFWmwJ3NzWfb7T6nFowA0UAuuvAD9++VLfQAIzxf6Av/a+Irl+Dfqxg/zNJuYll QaHhMME0aWcr4XNQkKS9uYTOlA38UFFU2qUvuBidDnYjG35C8hOjW67XDjyv1h5cUOiX Zp4Q== X-Gm-Message-State: AOJu0YxjflMy3DIK4mdRhyhytMCH97SyGMgEHmbHO6skpeKxaSghGGBi OoBFoed1AjamnyApI/wZvIzToL1zfA1VxWf8sD4TpWc5tbQjKtbq5R1wnGNNkckQHQXRHypnQRb BUGv87tEcqM7aTOwLZvvjoXbowsDRf9nbLrVOkD1EJ3Dh4ruZvwfn6ABx/+mSYjwj5w== X-Gm-Gg: AfdE7cmnALA6ClPqtD0t523EXS7iNBgmfZzvi1S8QstuEHS9d81as/0qHssnfSh9Pl/ Qfel+mp4/4+ccnx4gPjbhtLCduk5KOelczbegAGvd8dP2/WbVc4Q0metNlT9Mck5kzh7O+7e8eM GE7THEnYw9nhSZIClAyqMCzNjv1fPdT4eBAPxKkHWrMrQCcyRaL75fBVzkxVXmDduRkz0l5BDQJ 70MBS84/vwYezBB/VN+c7/8ZLV8GFTNi518qIehB8Xiitia0frvmZBTW7wYcTEnjdndXCzAx9ZP NWUgn254VGjUdqXBCkqZMPeNK2ys0kOlSlH0c1Iimfj3dl9jHCgDbX3OK/7R5x886bnm93iKp4C bjnnvvuTjLWGVtKEGWOxsrNBG82CM9+nuz3UnM2MGp9Zf4w== X-Received: by 2002:a05:622a:1194:b0:51b:eb55:2914 with SMTP id d75a77b69052e-51c26b00647mr15071021cf.33.1782907883668; Wed, 01 Jul 2026 05:11:23 -0700 (PDT) X-Received: by 2002:a05:622a:1194:b0:51b:eb55:2914 with SMTP id d75a77b69052e-51c26b00647mr15070321cf.33.1782907883034; Wed, 01 Jul 2026 05:11:23 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, alistair.francis@wdc.com, liwei1518@gmail.com, zhiwei_liu@linux.alibaba.com, chao.liu.zevorn@gmail.com, andrew.jones@oss.qualcomm.com, nutty.liu@hotmail.com, Daniel Henrique Barboza , Palmer Dabbelt Subject: [PATCH v2 1/3] hw/riscv/riscv-iommu.c: check for reserved PTE bits Date: Wed, 1 Jul 2026 09:11:09 -0300 Message-ID: <20260701121111.537654-2-daniel.barboza@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260701121111.537654-1-daniel.barboza@oss.qualcomm.com> References: <20260701121111.537654-1-daniel.barboza@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: dpHxtiM0kVzjqpwoz4koIe4-BVUg5e_H X-Proofpoint-Spam-Info: AW1haW4tMjYwNzAxMDEyOCBTYWx0ZWRfXxuOCmU7dUg12 dMO3rJE3mrXMh647ZBOCjr1vfIEpyfeej34t4pSkkgo2zcJGCp0y1uU9Per4s6iCBh599iwPhKH PO/WqgcT8UMUUZqriqBdtMN+bijqOvo= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzAxMDEyOCBTYWx0ZWRfX/UqPkSi4bJB2 MQEIDpO27r0VFgOcVmQ/ZGzxjkSlghNGrmN5Frpd7rA9OoPOHbGxSUJ1Yf0oevWeJAM4zhrZ6Yf KtnO149b8w3XQ5idXe986wYsoLkY5dN+VwbD8dbF823IHoNoKaNBKQS1qL6I4xP65NeP8Sa+we2 B34yFXf6jtUahQrFxtqn4jeWn5t6L2+vAoi8ksMSCa/9jd5uDVx1B+Iou6hDt027g7oeALCAT95 u6G0k+vwE4rIWzuuHCdE5tjoa8l6/QSSZ0OwmlJZI4ZlPPLDIK55DvJQ0L4GR4cpblhCakinOT1 bsq76x8XA/pIj36XOJZb5Y1Dv6gHGzz/EsT7Ry0T0wrxtddm/mN9SRhp1eo5zCWat8TUSulImpw 8NP7IZrxs+/gz/SynRp3BE7dl7hmmg6Cl/e18ROGD+0HkTV+TjHjLgRFehSWT/QQKAye6b/9Zva COre00kQtQgoGb5zvSw== X-Authority-Analysis: v=2.4 cv=T5+8ifKQ c=1 sm=1 tr=0 ts=6a4503ec cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=sHJf4AwOIoU3qjeHFPlg6Q==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=p0WdMEafAAAA:8 a=EUspDBNiAAAA:8 a=69EAbJreAAAA:8 a=pGLkceISAAAA:8 a=gKrNVKmnkRrTeqt_gscA:9 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-ORIG-GUID: dpHxtiM0kVzjqpwoz4koIe4-BVUg5e_H X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-07-01_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607010128 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=205.220.180.131; envelope-from=daniel.barboza@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, RCVD_IN_DNSWL_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1782907931730158500 Content-Type: text/plain; charset="utf-8" We need to fault if reserved PTE bits (60:54) are set. Fixes: 0c54acb8243d ("hw/riscv: add RISC-V IOMMU base emulation") Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3554 Signed-off-by: Daniel Henrique Barboza Reviewed-by: Nutty Liu Reviewed-by: Chao Liu --- hw/riscv/riscv-iommu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/riscv/riscv-iommu.c b/hw/riscv/riscv-iommu.c index 974042d017..2c2273e1d2 100644 --- a/hw/riscv/riscv-iommu.c +++ b/hw/riscv/riscv-iommu.c @@ -468,6 +468,8 @@ static int riscv_iommu_spa_fetch(RISCVIOMMUState *s, RI= SCVIOMMUContext *ctx, =20 if (!(pte & PTE_V)) { break; /* Invalid PTE */ + } else if (pte & PTE_RESERVED(false)) { + break; /* Reserved PTE bits set */ } else if (!(pte & (PTE_R | PTE_W | PTE_X))) { base =3D PPN_PHYS(ppn); /* Inner PTE, continue walking */ } else if ((pte & (PTE_R | PTE_W | PTE_X)) =3D=3D PTE_W) { --=20 2.43.0 From nobody Sun Jul 26 11:03:39 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782907912; cv=none; d=zohomail.com; s=zohoarc; b=T4shXJ8WplvliqSaM/4aLvHzzZs4KVrUf2PSW7g5DayUs2aagurmgou4JDQDNCHlSC6hRmwB9DKL+1L5qtmTVvetvGQWrykGRrpwDD0F5AIS50I7ga3akKpdhZ2WtiZPlBUPaV7pkVis62ttLfv5Te5h8kfBFQnCv3RCYGh0Ocw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782907912; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=yLWWWOvyZlqWJAuRBG/+LvQ8wsXWm7/p8iGepA5N0bs=; b=QZL5Z8cEBS9XHIzYLJdajm7SEFtr9vfXn1pH++/eXx/5/N3WmUEY4ODXTx3mruGKRDrXwg7QSIPSCqsJiMh/FbRB30LK85nWYga9/he5xWO0Hh6pmsKqg6rhrQGq52gXsY4sIOdGrhe4f0q48gKsBg6xCSCNjQ4c9oB2z2RSS6k= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782907912430633.069514821273; Wed, 1 Jul 2026 05:11:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wetmz-0002cz-2r; Wed, 01 Jul 2026 08:11:37 -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 1wetmw-0002Zi-Pw for qemu-devel@nongnu.org; Wed, 01 Jul 2026 08:11:34 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wetmv-0002hH-5z for qemu-devel@nongnu.org; Wed, 01 Jul 2026 08:11:34 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 661A8Wai744292 for ; Wed, 1 Jul 2026 12:11:32 GMT Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f4x0thd1y-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Jul 2026 12:11:32 +0000 (GMT) Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-8e97889ac8aso7501016d6.3 for ; Wed, 01 Jul 2026 05:11:31 -0700 (PDT) Received: from QCOM-UWl2o8bcGT.qualcomm.com ([189.79.21.40]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8f3611df020sm19794706d6.30.2026.07.01.05.11.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jul 2026 05:11:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=yLWWWOvyZlq WJAuRBG/+LvQ8wsXWm7/p8iGepA5N0bs=; b=N8QlJKpUBHyZh1J8PfGddjaCru6 HWD42fJ8iofNIQ4OGtOjOR9N3WdWK5nqniY2n0tjOhxSJfbOtQJt7bInPq5qejnm hJ9mkTFJUxLU4OEC0F8ZkAPCxE+XLZ/ClJIkc+8BEjVDkP+LNEcbwlFNRf1rPM2P US9gBTdI77ScE3OuqlyVBEz2lp8hEEAyPSbS2ZDKeOn+0TRkQYl8EKJyHK6LrYBN MvAjJyeeC80V8oiuE7y/H+GMyNiqtFFvd9ZNX0yLQPkq/EAWZQ7YA2r1XKbvQ641 yQHsyVyrsMhxyYQCbHnBk4PPrSHk0NWul91bi3cCdemB7b62wOwV8k8xl0g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782907891; x=1783512691; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yLWWWOvyZlqWJAuRBG/+LvQ8wsXWm7/p8iGepA5N0bs=; b=KZTUsu5xepxXNLj1AfEPiRY7gnU2R8LerhEHIxgOkxceYl6s9SLK2ilVD6OKe0I2do PwXS+70hrwueVlDNR5kqiNb85336QAJ5lXb1zZ9SrDMbRC1CNYKRrNMLThPmd92P0kRO bDOtYTzzYi8rdf8KmQDQSkaDzs9uH9byCEKIdbBRhbCIZWVL+4PiyXswRBTFg+jbaP9h eJhiGcLhz09wNFphGsmX7r8HWB9E48pcTNUXKn4Gnk4NDUH1sJeMlI5HD0YlMyYQU5sT VXJhW2v784I4HF4JzrDtvtwM844RGjTTEw23aiHD2MAsL2eZA+jj2xKyMgyZtNxFLm1Z viCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782907891; x=1783512691; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=yLWWWOvyZlqWJAuRBG/+LvQ8wsXWm7/p8iGepA5N0bs=; b=dAWENZ73BgMzZZ46vYahy4M8cn+rmX2RZFSSRI+cyMfnIRN2wtV9i44sbxr8nseLVa 4/YEpyIIS0jOTKPukWNPf5hpsYKAI7kqRJaEUnUbkNdFyg0HijmAmwFfNFXhQd/b/ziv FannRy8TziwaERt8SwerEolCj0QgF9RWgMjzeYI1DSMz64i8o71XF8kxZkNFliqRcUhM Cn294VzjHkIYkaAj4zs4BjrXI/1V60oc+SN9uOFCPk5F3G9YTxYCnsb87gEHs8oC0HPe xr2Y5Lyq2c3TDIVAAEv3QXH1pPyausFzqFqxKnGrPLs4+SLGvIhmTymqV3mxjZ5creoj g8vQ== X-Gm-Message-State: AOJu0Yy+6KWq91BkXmYDPy+dgXQrxG1C5RQSvmDLjsJ7KVi874Yv9tkI 2eruuH0ZhPuTL7l94H/boq9w27uTXrUqVRnKA6/XAFIb5pfl7popXewNJdjxlbjpUZU8XrFGzcF +ieKnOqdeKVndOLMhUsNkeSJkFVlwTYZBwrbxirHY/yqjehJdD5ZRP/UE5HLVF3tjVQ== X-Gm-Gg: AfdE7cmANrky9Ai+pUfuaAiu/CkGVv/yfU+QKCVk7/8cOA5Ynqt1T/rfPyA9BPsxE+p Abnpdd5NMt8VOV0pzZfJFApdUv3aYJw/pzrmYSngeOps/A65s+s97B45NyW6kpPDC10cdsYbREV +RNA2gTJZjWhuxD2xIAqoZigQs9SnCqCrbBPl3p+aJEzjM1H+yBJcihgtYai8AMFcoU1FSi0Zd7 Spii5DbrQ2rT7avd8hbs0Q2Lc4U9c2zBLbIxVez0869b8K27iRbW/O0AAy48lm2McQuVrtIP8hL uXAUpaQZ3/JADy6g8zwn2M/0IWYRhnrZCqE3tHiVkGGwRqqTAsRVQZlwdqaNixuP7E5We9HmuRk WTA2UCIopywFWkecLaJQKose0TQ93jm2azppwDxtFmoY/pQ== X-Received: by 2002:a0c:e7c3:0:b0:8ef:549b:794c with SMTP id 6a1803df08f44-8f3c85466bbmr11746116d6.29.1782907890232; Wed, 01 Jul 2026 05:11:30 -0700 (PDT) X-Received: by 2002:a0c:e7c3:0:b0:8ef:549b:794c with SMTP id 6a1803df08f44-8f3c85466bbmr11744106d6.29.1782907886359; Wed, 01 Jul 2026 05:11:26 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, alistair.francis@wdc.com, liwei1518@gmail.com, zhiwei_liu@linux.alibaba.com, chao.liu.zevorn@gmail.com, andrew.jones@oss.qualcomm.com, nutty.liu@hotmail.com, Daniel Henrique Barboza , Palmer Dabbelt , Tao Tang , Fabiano Rosas , Laurent Vivier , Paolo Bonzini Subject: [PATCH v2 2/3] hw/riscv/riscv-iommu.c: fault when !PTE_U and no priv access Date: Wed, 1 Jul 2026 09:11:10 -0300 Message-ID: <20260701121111.537654-3-daniel.barboza@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260701121111.537654-1-daniel.barboza@oss.qualcomm.com> References: <20260701121111.537654-1-daniel.barboza@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: r7iv_WJeQsvLzf0XsVMlm4DBJJyDuOCO X-Proofpoint-Spam-Info: AW1haW4tMjYwNzAxMDEyOCBTYWx0ZWRfX+pndpdS64giS b1ISo8NLkJW+H0kp+FklFN1IdWQG6tiiuXLQHNy8OgLtKlg/0l6VbqFFqlEJEWzdAHlrXqBwrYh hi9Yy8lGCkzaVEIUlxIWQuGpV4iCo9U= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzAxMDEyOCBTYWx0ZWRfX+If3XKLuTqHX W+NlgojNFOKIXn6GvHCko1ew9r6tvlwMT2ZsVxFDcRCynfEBVZmg0PToDHPapveuxxZgaCos0GK DNJlkzgZXjLavQp5+KEYBI2pG7rbl55Y4WbNYKUT+OBQEFe++hyGDHhvvp0EqaE+WrxPSuxKmRJ 3bTg1p5CRJtXbuhfqtP3kRTTPMTW0RNNoUQbgZrDRu4rGd95tumSZyDHWKj2gwNPcabDCnYWDKb 8gG0V4oEQkU7mWK2+R5I3oCqUArOkh3roiYp3c5N4TXeJbBjVzh4Q9QWWqAmrLB70SceV+Gh+KA II7nrOou9UIbhLUEXXwGxDdDGbERMAV2zUmwASKCmoSV695LeidyfuOJ1whkpxNvy4yRs8uD3m0 JukmxrTO6JW+EyBLh/g7u1VZAJrwm4zBH9uBLovkYnj4MFHkpFME53qzjepMzGv3WhJ6cksh+Sx JlNJ8fQA+QZnG1Pl8Wg== X-Authority-Analysis: v=2.4 cv=T5+8ifKQ c=1 sm=1 tr=0 ts=6a4503f4 cx=c_pps a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=sHJf4AwOIoU3qjeHFPlg6Q==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=p0WdMEafAAAA:8 a=EUspDBNiAAAA:8 a=69EAbJreAAAA:8 a=pGLkceISAAAA:8 a=mpH3L83ql8VJAxoKzUcA:9 a=pJ04lnu7RYOZP9TFuWaZ:22 X-Proofpoint-ORIG-GUID: r7iv_WJeQsvLzf0XsVMlm4DBJJyDuOCO X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-07-01_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607010128 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=205.220.180.131; envelope-from=daniel.barboza@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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 @qualcomm.com) X-ZM-MESSAGEID: 1782907913820158501 Content-Type: text/plain; charset="utf-8" All IOMMU accesses are assumed to be user mode unless told otherwise, i.e. we have a process_id. In case we have a non-user mode leaf PTE (PTE_U isn't set) and we are running in user mode, we need to throw a fault. This also reflects on qos-riscv-iommu tests: the tests always run in user mode so our PTEs must have PTE_U (bit 0x10) set. Fixes: 0c54acb8243d ("hw/riscv: add RISC-V IOMMU base emulation") Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3553 Signed-off-by: Daniel Henrique Barboza Reviewed-by: Nutty Liu Reviewed-by: Chao Liu Reviewed-by: Tao Tang --- hw/riscv/riscv-iommu.c | 8 ++++++++ tests/qtest/libqos/qos-riscv-iommu.h | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/hw/riscv/riscv-iommu.c b/hw/riscv/riscv-iommu.c index 2c2273e1d2..3b165348ca 100644 --- a/hw/riscv/riscv-iommu.c +++ b/hw/riscv/riscv-iommu.c @@ -297,6 +297,7 @@ static int riscv_iommu_spa_fetch(RISCVIOMMUState *s, RI= SCVIOMMUContext *ctx, G_STAGE =3D 1, } pass; MemTxResult ret; + bool pv =3D !!ctx->process_id; =20 satp =3D get_field(ctx->satp, RISCV_IOMMU_ATP_MODE_FIELD); gatp =3D get_field(ctx->gatp, RISCV_IOMMU_ATP_MODE_FIELD); @@ -470,6 +471,13 @@ static int riscv_iommu_spa_fetch(RISCVIOMMUState *s, R= ISCVIOMMUContext *ctx, break; /* Invalid PTE */ } else if (pte & PTE_RESERVED(false)) { break; /* Reserved PTE bits set */ + } else if (!(pte & PTE_U) && !pv) { + /* + * All accesses are assumed to be User mode unless + * process_id is valid (pv). In case we have a + * non-user mode PTE and !pv we need to fault. + */ + break; } else if (!(pte & (PTE_R | PTE_W | PTE_X))) { base =3D PPN_PHYS(ppn); /* Inner PTE, continue walking */ } else if ((pte & (PTE_R | PTE_W | PTE_X)) =3D=3D PTE_W) { diff --git a/tests/qtest/libqos/qos-riscv-iommu.h b/tests/qtest/libqos/qos-= riscv-iommu.h index 90e69a5d73..c218e9d66d 100644 --- a/tests/qtest/libqos/qos-riscv-iommu.h +++ b/tests/qtest/libqos/qos-riscv-iommu.h @@ -54,8 +54,8 @@ * PTE masks for RISC-V IOMMU page tables. * Values match PTE_V, PTE_R, PTE_W, PTE_A, PTE_D in target/riscv/cpu_bits= .h */ -#define QRIOMMU_NON_LEAF_PTE_MASK 0x001 /* PTE_V */ -#define QRIOMMU_LEAF_PTE_RW_MASK 0x0c7 /* V|R|W|A|D */ +#define QRIOMMU_NON_LEAF_PTE_MASK 0x011 /* PTE_V | PTE_U */ +#define QRIOMMU_LEAF_PTE_RW_MASK 0x0d7 /* V | R | W | A | D | PTE_U */ #define QRIOMMU_PTE_PPN_MASK 0x003ffffffffffc00ull =20 /* Address-space base offset for test tables */ --=20 2.43.0 From nobody Sun Jul 26 11:03:39 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1782907905; cv=none; d=zohomail.com; s=zohoarc; b=NofIVSqsyu3EjLz2vgIOxzMoZxd0bIY8tVfbdgcWx8t36bAXPw73BE9N7ZMxmta0PI22dvXVimqIi0L+rQ5wZFNvC1KUg0xxEcQHBbo/0GbrhJkfUT1a74wl4tMq/h7O7MwuLZzNrfagRyRU/d0B7d/O8r21+73RFkt073PBEGc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782907905; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=TmZW5SJh2F/t/sfvHlgMnV9qSmk9XIS1voG0p3KZfWk=; b=H/8wIcz59FjUCeQc2HbaUuDw/EStWVnB1e6SY8cIKitw96xlwfTH77/uQ852FHSkKTXgr7tQA8iMxieoRsm54m7OytVbRlw4H51Q3vVEu3tpcvmWNbiZiVQ+gOVUDWa4nyrXn6ZhtkBu9RQhrT+ulWUEWh3a0B/cB/US1AC97g4= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782907905811552.4717664426197; Wed, 1 Jul 2026 05:11:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wetmw-0002Z4-4P; Wed, 01 Jul 2026 08:11:34 -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 1wetmu-0002Yg-QX for qemu-devel@nongnu.org; Wed, 01 Jul 2026 08:11:32 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wetmt-0002gk-CQ for qemu-devel@nongnu.org; Wed, 01 Jul 2026 08:11:32 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 661A8VLC744114 for ; Wed, 1 Jul 2026 12:11:30 GMT Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f4x0thd1k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Jul 2026 12:11:30 +0000 (GMT) Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-8eeba1d9e47so8041796d6.2 for ; Wed, 01 Jul 2026 05:11:30 -0700 (PDT) Received: from QCOM-UWl2o8bcGT.qualcomm.com ([189.79.21.40]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8f3611df020sm19794706d6.30.2026.07.01.05.11.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jul 2026 05:11:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=TmZW5SJh2F/ t/sfvHlgMnV9qSmk9XIS1voG0p3KZfWk=; b=fZxVmum6gopoEbXWsdl8RW3N/UU 14oLWUqZ4WeV63aFqF9WweYIFI06426gjLdlPnRiqEJgfXZvQtRrhZ1BET4HYcB9 HVsABbxku/ibU3kJOu8VRRDmgwUmcF9sbCGl79qXVwgtTd86mrYhnz9gfDINJezx Voh8L3QfYAazjgIDLDvV6ilCXBfBzhrpCFAC+uv9YX5E9AOiF9mI/yynch6vB+J7 J0PKp0YdmseRiuiIjO8RM+oKN+9iCGZsoo7TFrJA5E6rlGouq3FCPdNWUi8SrHBk 4/ptOC68cF8Li6OEyp85RySvYdE1bioJktNuVb8DYk2lM6ryjzoIloa5EEg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782907890; x=1783512690; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TmZW5SJh2F/t/sfvHlgMnV9qSmk9XIS1voG0p3KZfWk=; b=XDtOCrEcvwizlO94ClaCjQLE7PCDkShw4kk9p5LYX289olxvFJRsyOf9uKveejHpGM 3j0PTOBE+ow2cV8Q94grf8dFy5iZ02pCXZclevWUq1xLfDyDGbfhK/XJkvkMj+yUx48o KdY7djgXAUnjCTzCUcf7MbPgFj0WmbORHFqeYh25rJOy7X0qqn8y+mzL0i49xRyQLyUr cGvZQIaeTHbgolKL9h99/Hs0LRHBgqnO4vTNcpHzTr13K5oJ3ipxcaJftjddNvK7YBp+ BadFd6tgtrf0fjKCoTBlY/tfGDaUoUwWs98O4kLRd/bJsaSQNJsVUhfnBX1qbluqZbTt JcGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782907890; x=1783512690; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=TmZW5SJh2F/t/sfvHlgMnV9qSmk9XIS1voG0p3KZfWk=; b=NoU8Wvy8VyIRHLmpwiOAiuRgYuCfekyBczZVZ60nuCKJVGj4DK7zOfzJJD4sKy7c8/ 4pTXSeitB+xyX8GdWsoYax/90YBOnaHM/cTLOpnaxi4DD66K+GqgfAnBOKZdz8pCIE7W Atx+xV22nuXkJk4hxK4tb4a6VzCpXkDS/lqcWmC1WCdjgcoUH//OYrJFtt3G/tsCHuJp 1uSRlB/FixZT4mYxHmef/GowpbKRh6LhkVygCJnL9SajsjPzL825uFnkvSHPx8fC0SRh pc6kCRed02hMi6VkrkjFyJPG8VK6hiOS/po5ld9Yx0dPMWjLXxfVthTuNEjUf28JIUMN rhLg== X-Gm-Message-State: AOJu0Yz7qK/3iZejwQu94HJjDRAEvAQIAJ3iknVqKCVNlrort4K4GGGp 75cKxi20hkVYxAdMIFfRr1Rn9oTcw61D7AIbh8235UZUhu2IKL5NW0Dg5RH3PAqCe7ugackqfgj 0pOo4rVi8qaxOSWL793saYbF/xpiNLEBhbuCxOVOXLtfC/JfjHXoDC2fDP66JWWPwZg== X-Gm-Gg: AfdE7ckhw4Om9Bt78yo3C+5ZGJ+ORPEXDhOwELqcbmGdR0+H9wTL2ElphF6TLULQsIf M1bhqamWlFxfCk3UpX/6+RqUS1crsEtvpJQ90vaHAyQ8zM7fQ0MRc6fJXWyXlTb/vrkZaFbMqj5 SV9SFhzPUYNnI24ZNpb9B6wIkeMEYOBjJYuVd1EhXsrIl3+urG1Zp1K7eI2lPW+M1yjE43A8bMx VrfUejPuXD6/zU2mMIuelVvh6sAWT2p1RAyu8T0oXAOam8EPZITqolhRFjjF6KdgrQwgXLo9LPP yKMwrAWKepoB5xUf12Ha+9siaozO49zDkO5ubjH+ZIxjI8P0AX7tXr1NzYiUXmc/9osafVkU8iz bFh6+Ms1+jHCGOLENVWKEqMtDNOkzl/AbPEJvTmG9IQyfbA== X-Received: by 2002:a05:6214:5f0c:b0:8e8:199b:aad0 with SMTP id 6a1803df08f44-8f3c65caf61mr18037496d6.7.1782907889692; Wed, 01 Jul 2026 05:11:29 -0700 (PDT) X-Received: by 2002:a05:6214:5f0c:b0:8e8:199b:aad0 with SMTP id 6a1803df08f44-8f3c65caf61mr18036806d6.7.1782907889163; Wed, 01 Jul 2026 05:11:29 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, alistair.francis@wdc.com, liwei1518@gmail.com, zhiwei_liu@linux.alibaba.com, chao.liu.zevorn@gmail.com, andrew.jones@oss.qualcomm.com, nutty.liu@hotmail.com, Daniel Henrique Barboza , Palmer Dabbelt Subject: [PATCH v2 3/3] hw/riscv/riscv-iommu.c: fault for non-user PTE in G_STAGE Date: Wed, 1 Jul 2026 09:11:11 -0300 Message-ID: <20260701121111.537654-4-daniel.barboza@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260701121111.537654-1-daniel.barboza@oss.qualcomm.com> References: <20260701121111.537654-1-daniel.barboza@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: TYI1neCIJHWe5Un13fjdGobvyhETG8w8 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzAxMDEyOCBTYWx0ZWRfXz6o5PVZW9/n0 tlLa/BfqHv2fEDRZrepmt7he1ArQKUJjk5+Ldt47XRLK+2u7rd11xenLF3c5gReDl43LBaclkEp k5mWfG9RDi0yXThh+C0rFsYZTMPt8Nc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzAxMDEyOCBTYWx0ZWRfXz0p21cR+MBIa N6Omq/8T4Ag+TQKaZB8sSS74VEAaibzUwIrc4P7T3CLVactar2fDMAjywBnDXl0+j3LrBzqvmyk zcVbZ1urQwB072Rdc3Ui4OgKQRyaNBs3J+5r5Cm+Gw6MQ1oePLyKI+6Hi+3MuOHEHYbdeE/ZEP1 0MyuUF590iFQy+o1gcu4zflJkhIx+9qKsL4vNCuyh3xpb+ETH/HJ4kKlcrSPhGenTGTU2FcMtUC CmnMy0Ief9BPHIIcn3LELQxfs8RvXkvYyde9dvl8panyISocF08ljbz3DELKzVCrNvw/draaWoj 2OVygn+pk6HYsV6gYi+3/BKkKMztnDK1eapmqq75/5iuwi60XpuGeGN5OgT/DfmjOeLUx7q+prF evyp1Fzjgcbxh0HkoJEWO+oqojDUlv5Fx1bSU04WfxPGvVC0rH2AtmADClNnuAeY8nsmmVY+bra X1pjzo484QnWqxKqz7g== X-Authority-Analysis: v=2.4 cv=T5+8ifKQ c=1 sm=1 tr=0 ts=6a4503f2 cx=c_pps a=oc9J++0uMp73DTRD5QyR2A==:117 a=sHJf4AwOIoU3qjeHFPlg6Q==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=p0WdMEafAAAA:8 a=EUspDBNiAAAA:8 a=5RwxYKaxI1MLRJtyegQA:9 a=iYH6xdkBrDN1Jqds4HTS:22 X-Proofpoint-ORIG-GUID: TYI1neCIJHWe5Un13fjdGobvyhETG8w8 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-07-01_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607010128 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=205.220.180.131; envelope-from=daniel.barboza@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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 @qualcomm.com) X-ZM-MESSAGEID: 1782907907570158500 Content-Type: text/plain; charset="utf-8" riscv-iommu spec 1.0 says: "When checking the U bit in a second-stage PTE, the transaction is treated as not requesting supervisor privilege." We need to *always* fault in case we're on G_STAGE and PTE_U is cleared since we can't be on supervisor mode at this point. Fixes: 0c54acb8243d ("hw/riscv: add RISC-V IOMMU base emulation") Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3555 Signed-off-by: Daniel Henrique Barboza Acked-by: Alistair Francis --- hw/riscv/riscv-iommu.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/hw/riscv/riscv-iommu.c b/hw/riscv/riscv-iommu.c index 3b165348ca..29eec3133e 100644 --- a/hw/riscv/riscv-iommu.c +++ b/hw/riscv/riscv-iommu.c @@ -494,6 +494,16 @@ static int riscv_iommu_spa_fetch(RISCVIOMMUState *s, R= ISCVIOMMUContext *ctx, break; /* Access bit not set */ } else if ((iotlb->perm & IOMMU_WO) && !ade && !(pte & PTE_D)) { break; /* Dirty bit not set */ + } else if (pass =3D=3D G_STAGE && !(pte & PTE_U)) { + /* + * riscv-iommu spec 1.0: "When checking the U bit in a + * second-stage PTE, the transaction is treated as + * not requesting supervisor privilege." + * + * I.e. we need to fault if this is a non-user PTE since + * we are always in user mode at this point. + */ + break; } else { /* Leaf PTE, translation completed. */ sc[pass].step =3D sc[pass].levels; --=20 2.43.0