|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-changelog
[Xen-changelog] [xen-unstable] [IA64] Fix isr setting vs viosapic	interu
 
# 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
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread> |  
- [Xen-changelog] [xen-unstable] [IA64] Fix isr setting vs viosapic	interupt delivery,
Xen patchbot-unstable <=
  
 |  
  
 | 
    | 
  
  
    |   | 
    |