From nobody Tue Feb 10 09:57:26 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.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 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1529942909191150.36813689846713; Mon, 25 Jun 2018 09:08:29 -0700 (PDT) Received: from localhost ([::1]:48053 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fXU2W-0002bo-DI for importer@patchew.org; Mon, 25 Jun 2018 12:08:28 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52756) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fXTuZ-0004od-9e for qemu-devel@nongnu.org; Mon, 25 Jun 2018 12:00:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fXTuW-00051b-RP for qemu-devel@nongnu.org; Mon, 25 Jun 2018 12:00:15 -0400 Received: from mail-wr0-x242.google.com ([2a00:1450:400c:c0c::242]:46911) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fXTuW-00050l-LH for qemu-devel@nongnu.org; Mon, 25 Jun 2018 12:00:12 -0400 Received: by mail-wr0-x242.google.com with SMTP id l14-v6so9164250wrq.13 for ; Mon, 25 Jun 2018 09:00:12 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id z14-v6sm14782771wrm.49.2018.06.25.09.00.09 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 25 Jun 2018 09:00:09 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 5EB693E08B3; Mon, 25 Jun 2018 17:00:09 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TwXHldywT1MI4fCv7QetLUNUwCIoFxeHYvHSCnIQVqw=; b=BBmxoVMEpptcJck7nSi36q58OTAW1+XWa9FmtZCgT1JegLovrd37L6itrUsXx3Ctgh rTFnJ8OTTA8EmnTtE+h8pMutSpXC41XjLjhYbdBW6duJNNhVUwOMiZ6rj3uwHY9APVie Po+G+plFDrSpEDz4CT1uRdarZH6ska7g7ZQgE= 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=TwXHldywT1MI4fCv7QetLUNUwCIoFxeHYvHSCnIQVqw=; b=G/AjIK9nOKnZzSQLHiPduBW8c8ESPomf7z2v74LdmKhF6m+2WfdswVfjGgtRaRzluf qMho1eZSMjTNQmGlnbL8+SWLp8bvB7ls/xggkJ0jdVwDhySqOsE4xbSTk3TqnmeZwgy4 wQguGGO7272YNMcJw7YZChXBp8Yc9vUX9M0Q8iu5MI3bpbpv64LwG2KST7M4QyDyLK/K PXOC8m7bxTGMhW+hFB4Kgj0yXbSfz6pIBRawntwbgqOXKklW8TqOWJ+2DveFklMJjUpd zSHgx1BPuyolwlmXA/sWsRWwsoQHuXO2lGjd7gjVrrX73BXlGnWuBZpX9BSnjhnECVIy o1SQ== X-Gm-Message-State: APt69E2xDJMAVICyGvnWrXn87VhI1EXM34n2FAIA4heHHaJP5FwtWGf2 TzZMIchflwl9f+Bi6C2YeFjIhg== X-Google-Smtp-Source: AAOMgpcAgRBY3vRXmsGs24NFJZpsDmWVQ9a8Ebeiab5sk2q48Cn/L6MOAEvxHRSEMMa8g4ArFClLbw== X-Received: by 2002:adf:984e:: with SMTP id v72-v6mr823965wrb.180.1529942411362; Mon, 25 Jun 2018 09:00:11 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Mon, 25 Jun 2018 17:00:06 +0100 Message-Id: <20180625160009.17437-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180625160009.17437-1-alex.bennee@linaro.org> References: <20180625160009.17437-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::242 Subject: [Qemu-devel] [PATCH v3 2/5] target/arm: relax permission checks for HWCAP_CPUID registers 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: qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Although technically not visible to userspace the kernel does make them visible via trap and emulate. For user mode we can provide the value directly but we need to relax our permission checks to do this. Signed-off-by: Alex Benn=C3=A9e --- target/arm/helper.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index 6e6b1762e8..9d81feb124 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -5813,7 +5813,19 @@ void define_one_arm_cp_reg_with_opaque(ARMCPU *cpu, if (r->state !=3D ARM_CP_STATE_AA32) { int mask =3D 0; switch (r->opc1) { - case 0: case 1: case 2: + case 0: +#ifdef CONFIG_USER_ONLY + /* Some AArch64 CPU ID/feature are exported to userspace + * by the kernel (see HWCAP_CPUID) */ + if (r->opc0 =3D=3D 3 && r->crn =3D=3D 0 && + (r->crm =3D=3D 0 || + (r->crm >=3D 4 && r->crm <=3D 7))) { + mask =3D PL0_R; + break; + } +#endif + /* fall-through */ + case 1: case 2: /* min_EL EL1 */ mask =3D PL1_RW; break; --=20 2.17.1