[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] hvm/vpt: Check that an irq is not blocked before waking the vcpu



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1236606645 0
# Node ID d4c9a63a1642586f1a1c21808e051f9c2ef6af17
# Parent  00b8c660be97a748a3360881225482644e1ad7e7
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 <george.dunlap@xxxxxxxxxxxxx>
---
 xen/arch/x86/hvm/vpt.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

diff -r 00b8c660be97 -r d4c9a63a1642 xen/arch/x86/hvm/vpt.c
--- a/xen/arch/x86/hvm/vpt.c    Mon Mar 09 13:35:47 2009 +0000
+++ b/xen/arch/x86/hvm/vpt.c    Mon Mar 09 13:50:45 2009 +0000
@@ -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);
 }

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.