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

[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


 


Rackspace

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