]> git.proxmox.com Git - mirror_qemu.git/commitdiff
arm/gicv3: update virtual irq state after IAR register read
authorJeff Kubascik <jeff.kubascik@dornerworks.com>
Fri, 17 Jan 2020 14:09:31 +0000 (14:09 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 17 Jan 2020 14:27:16 +0000 (14:27 +0000)
The IAR0/IAR1 register is used to acknowledge an interrupt - a read of the
register activates the highest priority pending interrupt and provides its
interrupt ID. Activating an interrupt can change the CPU's virtual interrupt
state - this change makes sure the virtual irq state is updated.

Signed-off-by: Jeff Kubascik <jeff.kubascik@dornerworks.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20200113154607.97032-1-jeff.kubascik@dornerworks.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/intc/arm_gicv3_cpuif.c

index a254b0ce875b0b47706276c38fe7f762be6ad1da..08e000e33c630f40ae2b47243ed3763185a415c9 100644 (file)
@@ -664,6 +664,9 @@ static uint64_t icv_iar_read(CPUARMState *env, const ARMCPRegInfo *ri)
 
     trace_gicv3_icv_iar_read(ri->crm == 8 ? 0 : 1,
                              gicv3_redist_affid(cs), intid);
+
+    gicv3_cpuif_virt_update(cs);
+
     return intid;
 }