From: Keir Fraser Date: Mon, 9 Mar 2009 13:50:45 +0000 (+0000) Subject: hvm/vpt: Check that an irq is not blocked before waking the vcpu X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~13994^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=4720717da59bf8d4ea2852bf7b7caa99959f554d;p=xen.git hvm/vpt: Check that an irq is not blocked before waking the vcpu Currently, when a timer fires for a vpt interrupt, the interrupt handler calls vcpu_kick() without checking to see if the IRQ is blocked. This causes the vcpu to wake up out of a halt when it shouldn't. Signed-off-by: George Dunlap --- diff --git a/xen/arch/x86/hvm/vpt.c b/xen/arch/x86/hvm/vpt.c index fe4ec99129..929d4cf57d 100644 --- a/xen/arch/x86/hvm/vpt.c +++ b/xen/arch/x86/hvm/vpt.c @@ -209,7 +209,8 @@ static void pt_timer_fn(void *data) set_timer(&pt->timer, pt->scheduled); } - vcpu_kick(pt->vcpu); + if ( !pt_irq_masked(pt) ) + vcpu_kick(pt->vcpu); pt_unlock(pt); }