From nobody Fri Nov 7 15:23:47 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1548555331375263.0681089857144; Sat, 26 Jan 2019 18:15:31 -0800 (PST) Received: from localhost ([127.0.0.1]:38309 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gnZyj-0008WQ-Ax for importer@patchew.org; Sat, 26 Jan 2019 21:15:21 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52974) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gnX8R-0001vk-G2 for qemu-devel@nongnu.org; Sat, 26 Jan 2019 18:13:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gnWzD-0007xz-I3 for qemu-devel@nongnu.org; Sat, 26 Jan 2019 18:03:41 -0500 Received: from mail-pg1-x544.google.com ([2607:f8b0:4864:20::544]:36409) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gnWz8-0007pn-Ep; Sat, 26 Jan 2019 18:03:36 -0500 Received: by mail-pg1-x544.google.com with SMTP id n2so5643932pgm.3; Sat, 26 Jan 2019 15:03:22 -0800 (PST) Received: from kaby.cs.washington.edu ([2607:4000:200:15:6070:48b1:4858:942f]) by smtp.gmail.com with ESMTPSA id w128sm36783248pfw.79.2019.01.26.15.03.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 26 Jan 2019 15:03:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=HefkbKfM92zlHKIzhy9dWc38Q8zM7GhMNdqduiXZb/g=; b=nfEpvZCwCpWpPNeXrKMxHzutG8sm9D1tLou25/oAhfdzm8tjVHGCn55mEH2sQOF23Z bCIdRw+k2TtZgt+2Cet8apElcqUlqo7KyH8AoNzH9Tncc29QxTo6xeIKq/0far/rwP1X ig52ZzPs6Jmc5jwp2Ot9b/h12QaTbHBn1inubuFT3Yct2bro/NH9yQIw5DG0nMMkzO0K E6MHNuI7JHdQtbfmyByQHcmX6h68Y+THJmI+143/91zWXO8xSSOZq55QWofEPJGXSRsg 22Lgl3DuPV8TyapJS8lCEbvPhDtESsJitagVdCbaAZjalLb8qlUbRRCujEWBbqq9Bdw4 SNqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=HefkbKfM92zlHKIzhy9dWc38Q8zM7GhMNdqduiXZb/g=; b=Y9X1b1Rp98bmyYWxeSXxB+ZU0gka1Pgp+qRL3RKQHzx1ogbivJd3Xc3JNOA7pTrshE 3Ms2RQt4pQQwMEGovctSB11tE+wqQ4CffA1YugFeNpjfkSKMS5AONquhF/U1Vn9ahTq3 X1idz6hw3FabwwIS1jQaWuCPI+SJmGmUt1xJTGvkd/eujWEecL/Fq6XLnULbWwV/8WMd nlMPHoWHP2nm8E/k+txJekGHrmEpxk6WmPJYz+DvoqJ6qk7VFdyxLrI3sDfeUmNAsODA OT4Z0FiwLtZA76iA1QHt10J+ENvjxJ1PNBrxsLBAe84EbOH2wpQ8jGNVEJq995SI7/qB UdZg== X-Gm-Message-State: AJcUukeBp+qzwPMjS8ynP4vk3DbFCET2QGS/dOJKxXUhDbapIxp3r+rJ FHDsN24NEcu0limKGV/UeqiGnWQU X-Google-Smtp-Source: ALg8bN4Pi9waG2YLiz2nqYhB2eY8FQu0KRaCusD3zBwberyK4YylZftjV3WXxXNY3Aq00Pz6jYd6dg== X-Received: by 2002:a63:4665:: with SMTP id v37mr15011438pgk.425.1548543801093; Sat, 26 Jan 2019 15:03:21 -0800 (PST) From: Xi Wang To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Date: Sat, 26 Jan 2019 15:02:56 -0800 Message-Id: <20190126230256.10983-1-xi.wang@gmail.com> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::544 X-Mailman-Approved-At: Sat, 26 Jan 2019 21:14:08 -0500 Subject: [Qemu-devel] [PATCH] target/riscv: fix counter-enable checks in ctr() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sagar Karandikar , Bastian Koppelmann , Palmer Dabbelt , Michael Clark , Alistair Francis , Xi Wang Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Access to a counter in U-mode is permitted only if the corresponding bit is set in both mcounteren and scounteren. The current code ignores mcounteren and checks scounteren only for U-mode access. Signed-off-by: Xi Wang Reviewed-by: Palmer Dabbelt --- target/riscv/csr.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 5e7e7d16b8..133f2ff7e2 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -56,9 +56,15 @@ static int fs(CPURISCVState *env, int csrno) static int ctr(CPURISCVState *env, int csrno) { #if !defined(CONFIG_USER_ONLY) - target_ulong ctr_en =3D env->priv =3D=3D PRV_U ? env->scounteren : - env->priv =3D=3D PRV_S ? env->mcounteren : -1U; - if (!(ctr_en & (1 << (csrno & 31)))) { + uint32_t ctr_en =3D ~0u; + + if (env->priv < PRV_M) { + ctr_en &=3D env->mcounteren; + } + if (env->priv < PRV_S) { + ctr_en &=3D env->scounteren; + } + if (!(ctr_en & (1u << (csrno & 31)))) { return -1; } #endif --=20 2.19.1