Signed-off-by: Brendan Fennell <bfenn...@skynet.ie>
---
 hw/pl190.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/hw/pl190.c b/hw/pl190.c
index cb50afb..eddb531 100644
--- a/hw/pl190.c
+++ b/hw/pl190.c
@@ -120,7 +120,8 @@ static uint64_t pl190_read(void *opaque, target_phys_addr_t 
offset,
            current priority level to that of the current interrupt.  */
         for (i = 0; i < s->priority; i++)
           {
-            if ((s->level | s->soft_level) & s->prio_mask[i])
+            /* Ensure that 'i' is current highest priority interrupt on exit */
+            if ((s->level | s->soft_level) & s->prio_mask[i+1])
               break;
           }
         /* Reading this value with no pending interrupts is undefined.
-- 
1.7.2.5


Reply via email to