|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-ppc-devel
[XenPPC] [pushed][ppc] process all interrupts that may be in the PIC
 
changeset:   9665:adf9242cac67
user:        jimix@xxxxxxxxxxxxxxxxxxxxx
date:        Wed Mar 29 12:31:15 2006 -0500
summary:     [ppc] process all interrupts that may be in the PIC
diff -r 7c52c6507ea3 -r adf9242cac67 xen/arch/ppc/external.c
--- a/xen/arch/ppc/external.c   Wed Mar 29 12:28:58 2006 -0500
+++ b/xen/arch/ppc/external.c   Wed Mar 29 12:31:15 2006 -0500
@@ -75,13 +75,22 @@ void do_external(struct cpu_user_regs *r
 {
     int vec;
 
-    local_irq_disable();
-    vec = mpic_get_one_irq(mpic, regs);
-
-    DBG("EE:0x%lx isrc: %d\n", regs->msr, vec);
-    if (vec != -1) {
-        regs->entry_vector = vec;
-        do_IRQ(regs);
+    BUG_ON(!(regs->msr & MSR_EE));
+    BUG_ON(mfmsr() & MSR_EE);
+
+    for (;;) {
+        vec = mpic_get_one_irq(mpic, regs);
+
+        if (vec != -1) {
+            DBG("EE:0x%lx isrc: %d\n", regs->msr, vec);
+            regs->entry_vector = vec;
+            do_IRQ(regs);
+
+            BUG_ON(mfmsr() & MSR_EE);
+
+            continue;
+        }
+        break;
     }
 }
 
_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread>
 |  
- [XenPPC] [pushed][ppc] process all interrupts that may be in the PIC,
jimix <=
 
 
 |  
  
 | 
    | 
  
  
    |   | 
    |