[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |