]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
hw/intc/arm_gicv3: Fix write of ICH_VMCR_EL2.{VBPR0, VBPR1}
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 23 May 2019 13:47:43 +0000 (14:47 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 23 May 2019 13:47:43 +0000 (14:47 +0100)
In ich_vmcr_write() we enforce "writes of BPR fields to less than
their minimum sets them to the minimum" by doing a "read vbpr and
write it back" operation.  A typo here meant that we weren't handling
writes to these fields correctly, because we were reading from VBPR0
but writing to VBPR1.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190520162809.2677-4-peter.maydell@linaro.org

hw/intc/arm_gicv3_cpuif.c

index cbad6037f1963962f16fe77b739e1aa827b98e1d..000bdbd62476b26495d6f5821f2424e9a61505b2 100644 (file)
@@ -2366,7 +2366,7 @@ static void ich_vmcr_write(CPUARMState *env, const ARMCPRegInfo *ri,
     /* Enforce "writing BPRs to less than minimum sets them to the minimum"
      * by reading and writing back the fields.
      */
-    write_vbpr(cs, GICV3_G1, read_vbpr(cs, GICV3_G0));
+    write_vbpr(cs, GICV3_G0, read_vbpr(cs, GICV3_G0));
     write_vbpr(cs, GICV3_G1, read_vbpr(cs, GICV3_G1));
 
     gicv3_cpuif_virt_update(cs);