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

[Xen-changelog] [xen-unstable] [IA64] Fix isr setting vs viosapic interupt delivery



# HG changeset patch
# User awilliam@xxxxxxxxxxxx
# Date 1174404107 21600
# Node ID e1d626bde5db9be3cc6741eaa3578a44e57622c9
# Parent  e014b94333aa5ff5420c7a533f12ccd028139fa0
[IA64] Fix isr setting vs viosapic interupt delivery

When the HVM guest is used with vcpu=5, the hypervisor may report:
"redir 10 not set for 180 EOI", and the HVM guest is Hung.

When the hypervisor with a vcpu context delivers to another vcpu,
EOI might be sent before ISR is set.

We should modify to call viosapic_delver() after ISR setting.

Signed-off-by: Tsunehisa Doi <Doi.Tsunehisa@xxxxxxxxxxxxxx>
Signed-off-by: Tomonari Horikoshi <t.horikoshi@xxxxxxxxxxxxxx>
---
 xen/arch/ia64/vmx/viosapic.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff -r e014b94333aa -r e1d626bde5db xen/arch/ia64/vmx/viosapic.c
--- a/xen/arch/ia64/vmx/viosapic.c      Tue Mar 20 09:16:09 2007 -0600
+++ b/xen/arch/ia64/vmx/viosapic.c      Tue Mar 20 09:21:47 2007 -0600
@@ -104,10 +104,10 @@ static void service_iosapic(struct viosa
 
     while ( (irq = iosapic_get_highest_irq(viosapic)) != -1 )
     {
-        viosapic_deliver(viosapic, irq);
-
         if ( viosapic->redirtbl[irq].trig_mode == SAPIC_LEVEL )
             viosapic->isr |= (1UL << irq);
+
+        viosapic_deliver(viosapic, irq);
 
         viosapic->irr &= ~(1UL << irq);
     }

_______________________________________________
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®.