From nobody Wed May 1 16:34:42 2024 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; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1526972022505809.7238128873457; Mon, 21 May 2018 23:53:42 -0700 (PDT) Received: from localhost ([::1]:53905 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fL1Az-0006py-9c for importer@patchew.org; Tue, 22 May 2018 02:53:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43259) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fL1A6-0006Wu-AK for qemu-devel@nongnu.org; Tue, 22 May 2018 02:52:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fL1A2-0005dg-Bs for qemu-devel@nongnu.org; Tue, 22 May 2018 02:52:46 -0400 Received: from david.siemens.de ([192.35.17.14]:58427) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fL1A2-0005d1-13 for qemu-devel@nongnu.org; Tue, 22 May 2018 02:52:42 -0400 Received: from mail1.siemens.de (mail1.siemens.de [139.23.33.14]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id w4M6qcgv018068 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 22 May 2018 08:52:38 +0200 Received: from [139.22.46.17] ([139.22.46.17]) by mail1.siemens.de (8.15.2/8.15.2) with ESMTP id w4M6qbr1025246; Tue, 22 May 2018 08:52:38 +0200 To: Peter Maydell , qemu-devel From: Jan Kiszka Openpgp: preference=signencrypt Autocrypt: addr=jan.kiszka@siemens.com; prefer-encrypt=mutual; keydata= xsDhBEq0i8QRBAD2wOxlC9m/8t/vqjm1U9yQCT6OJ2Wbv/qys9DYM0CvcOTDMWQwmV1/VsZj KR5YgB5NPt+To7X6x5cjz15AGnx5Fb8Wnrq8EF9ZfHMwb7YMx1LdPYPDnXr37wE3XupFmkHB Mes4htyX7Dz8LvKDLnli4IsAmWG+kV1JI6LWKXLpSwCg8JRq4SWoB4VCQxbH3GjntgvwNc8D /2q5Dj0urJ7s7sdXhrH0hcFkpSFRmU5Yd6MCwcbFHm2paL5gqVjNNUUwDBKAL9eZaQVIHKwC 44BvNGO2gcQ26R3AuCHUQ+pZHg34tok1JCNZ6IEZccb+33Qq0qbcDMJJiDYp7ppp6ozifvc4 YaqJECX48IydxfE9+41oV7T5vNAzA/QL/UMJyTnu5jiOXcyn5iFQw535lXkwKsqeXzCowLho HICZ2jITJPdTT/+9pGWwMQqST/SS35Tx4EnS3z2BWsNMCLuXCPkxF1elaMJqMfMJxFD8rAgS 9GK6zP6fJlsA1wq/UvKSL8v4QPOnTNCVOsyqJVasGV0ZPcDfcj+ClNO4zR5KYW4gS2lzemth IDxqYW4ua2lzemthQHdlYi5kZT7CYwQTEQIAIwIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheA BQJOpoNtAhkBAAoJEIrUrG965ecUOPUAoK+Rh12KgCjplHAS0AoiGKwGOuq7AKDEVnBtRAoy VRvp3lOlOx+P2Ay56M7BTQRKtIvEEAgA2/PlX6oyi7dToH0CJCHq0eKmZaa7CmGaVnxyeepK vIfiM8n8Td76AbG64fjREMwgSpb4F/UytF3z/03tj4e49W/zKjbBRB2/wmFRlZBC9crg22Q+ bgvMOsxnC6uHXaWN8fL+jVei/5OoHOoFqaMsX8EvploitlI/BPj+VgW26jksf3YZyk1hncls Z/IYhXzgRmVJo4RiTW/YLQAkwndwc+fKPa/IYLEDW1Jc4kNLoK0P90b45zju0hpl0C00pVOR TOtzFK9G5Ha7qOAWJfAVJORHKAkkvwftf3hkpPdLyvZUWRHXvUexmA61fLvDBAFhRxYGD8t5 gz88SF5Tzq+0ywADBQf/YSkaYrEslPWiCA2wU6EW0yaqBQAobFsOMvsufJ6o2ntq5Ncq37VI 3KCT67eHPE9x+zPcENoZWsRrC9S9PCf1LOsi7ybZsR13AJqDFlRzJZ4klh9QwgwFZxUBzOdI vttwzG1QkzHx06RKZluFYpPF3DRduSMukdIJ2wmWCU+ohB+mYefe65JGjYQfHVs8mgYVFOPx bRea9VJACCMuspoZWpj43UdR1lLLyIUFYz+jqcPW7Hd/GTIw4N67pYl0dwPDmFd4ohJ5g4Zp q61toNysBGEuEm5GCcn0VmGtQpSYnR5cVm5b2yPz4bIuFOSuZUo/l7vitdY0iy0/wvKbBC+N K8JJBBgRAgAJBQJKtIvEAhsMAAoJEIrUrG965ecULvAAoKGvxs5T3IhyQT8I8sMsyAvCE4wH AJ46S16yab+OxNkvOeoOEX0EnHVHaA== Message-ID: <28b927d3-da58-bce4-cc13-bfec7f9b1cb9@siemens.com> Date: Tue, 22 May 2018 08:52:37 +0200 User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 MIME-Version: 1.0 Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 192.35.17.14 Subject: [Qemu-devel] [PATCH] hw/intc/arm_gicv3: Fix APxR register dispatching 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" There was a nasty flip in identifying which register group an access is targeting. The issue caused spuriously raised priorities of the guest when handing CPUs over in the Jailhouse hypervisor. Signed-off-by: Jan Kiszka --- hw/intc/arm_gicv3_cpuif.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/hw/intc/arm_gicv3_cpuif.c b/hw/intc/arm_gicv3_cpuif.c index cb9a3a542d..5c89be1af0 100644 --- a/hw/intc/arm_gicv3_cpuif.c +++ b/hw/intc/arm_gicv3_cpuif.c @@ -427,7 +427,7 @@ static uint64_t icv_ap_read(CPUARMState *env, const ARM= CPRegInfo *ri) { GICv3CPUState *cs =3D icc_cs_from_env(env); int regno =3D ri->opc2 & 3; - int grp =3D ri->crm & 1 ? GICV3_G0 : GICV3_G1NS; + int grp =3D (ri->crm & 1) ? GICV3_G1NS : GICV3_G0; uint64_t value =3D cs->ich_apr[grp][regno]; =20 trace_gicv3_icv_ap_read(ri->crm & 1, regno, gicv3_redist_affid(cs), va= lue); @@ -439,7 +439,7 @@ static void icv_ap_write(CPUARMState *env, const ARMCPR= egInfo *ri, { GICv3CPUState *cs =3D icc_cs_from_env(env); int regno =3D ri->opc2 & 3; - int grp =3D ri->crm & 1 ? GICV3_G0 : GICV3_G1NS; + int grp =3D (ri->crm & 1) ? GICV3_G1NS : GICV3_G0; =20 trace_gicv3_icv_ap_write(ri->crm & 1, regno, gicv3_redist_affid(cs), v= alue); =20 @@ -1461,7 +1461,7 @@ static uint64_t icc_ap_read(CPUARMState *env, const A= RMCPRegInfo *ri) uint64_t value; =20 int regno =3D ri->opc2 & 3; - int grp =3D ri->crm & 1 ? GICV3_G0 : GICV3_G1; + int grp =3D (ri->crm & 1) ? GICV3_G1 : GICV3_G0; =20 if (icv_access(env, grp =3D=3D GICV3_G0 ? HCR_FMO : HCR_IMO)) { return icv_ap_read(env, ri); @@ -1483,7 +1483,7 @@ static void icc_ap_write(CPUARMState *env, const ARMC= PRegInfo *ri, GICv3CPUState *cs =3D icc_cs_from_env(env); =20 int regno =3D ri->opc2 & 3; - int grp =3D ri->crm & 1 ? GICV3_G0 : GICV3_G1; + int grp =3D (ri->crm & 1) ? GICV3_G1 : GICV3_G0; =20 if (icv_access(env, grp =3D=3D GICV3_G0 ? HCR_FMO : HCR_IMO)) { icv_ap_write(env, ri, value); @@ -2292,7 +2292,7 @@ static uint64_t ich_ap_read(CPUARMState *env, const A= RMCPRegInfo *ri) { GICv3CPUState *cs =3D icc_cs_from_env(env); int regno =3D ri->opc2 & 3; - int grp =3D ri->crm & 1 ? GICV3_G0 : GICV3_G1NS; + int grp =3D (ri->crm & 1) ? GICV3_G1NS : GICV3_G0; uint64_t value; =20 value =3D cs->ich_apr[grp][regno]; @@ -2305,7 +2305,7 @@ static void ich_ap_write(CPUARMState *env, const ARMC= PRegInfo *ri, { GICv3CPUState *cs =3D icc_cs_from_env(env); int regno =3D ri->opc2 & 3; - int grp =3D ri->crm & 1 ? GICV3_G0 : GICV3_G1NS; + int grp =3D (ri->crm & 1) ? GICV3_G1NS : GICV3_G0; =20 trace_gicv3_ich_ap_write(ri->crm & 1, regno, gicv3_redist_affid(cs), v= alue); =20 --=20 2.13.6