]> git.proxmox.com Git - qemu.git/commitdiff
hw/arm_gic: Fix comparison with priority mask register
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 11 Dec 2012 11:30:37 +0000 (11:30 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 11 Dec 2012 11:30:37 +0000 (11:30 +0000)
The GIC spec states that only interrupts with higher priority
than the value in the GICC_PMR priority mask register are
passed through to the processor. We were incorrectly allowing
through interrupts with a priority equal to the specified
value: correct the comparison operation to match the spec.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Igor Mitsyanko <i.mitsyanko@samsung.com>
hw/arm_gic.c

index f9e423f1526b20012e9a7e5bb6bc3decc0aa5ae1..672d5399965097b5e83cd0427786b75cff7161c7 100644 (file)
@@ -73,7 +73,7 @@ void gic_update(GICState *s)
             }
         }
         level = 0;
-        if (best_prio <= s->priority_mask[cpu]) {
+        if (best_prio < s->priority_mask[cpu]) {
             s->current_pending[cpu] = best_irq;
             if (best_prio < s->running_priority[cpu]) {
                 DPRINTF("Raised pending IRQ %d\n", best_irq);