diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c index 288e740e09..6c803bf09b 100644 --- a/xen/arch/arm/gic.c +++ b/xen/arch/arm/gic.c @@ -430,6 +430,10 @@ void gic_raise_inflight_irq(struct vcpu *v, unsigned int virtual_irq) ASSERT(spin_is_locked(&v->arch.vgic.lock)); + /* Don't try to update the LR if the interrupt is disabled */ + if ( !test_bit(GIC_IRQ_GUEST_ENABLED, &n->status) ) + return; + if ( list_empty(&n->lr_queue) ) { if ( v == current )