Enable interrupts as soon as the pending interrupts have been masked.

This commit is contained in:
Olivier Houchard 2004-11-23 16:31:16 +00:00
parent 6054abc495
commit a27952c1a9
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=138022

View file

@ -139,17 +139,16 @@ arm_handler_execute(void *frame, int irqnb)
continue;
ih = TAILQ_FIRST(&ithd->it_handlers);
if (ih && ih->ih_flags & IH_FAST) {
oldirqstate = disable_interrupts(I32_bit);
TAILQ_FOREACH(ih, &ithd->it_handlers,
ih_next) {
ih->ih_handler(ih->ih_argument ?
ih->ih_argument : frame);
}
arm_unmask_irqs(1 << i);
} else if (ih) {
oldirqstate = enable_interrupts(I32_bit);
ithread_schedule(ithd);
restore_interrupts(oldirqstate);
}
arm_unmask_irqs(1 << i);
} else if (ih)
ithread_schedule(ithd);
irqnb |= arm_get_irqnb(frame);
}
td->td_intr_nesting_level--;