Messages in this thread | | | Date | Tue, 20 Mar 2007 09:31:58 -0700 | From | Jeremy Fitzhardinge <> | Subject | Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable |
| |
Linus Torvalds wrote: > On Tue, 20 Mar 2007, Eric W. Biederman wrote: > >> If that is the case. In the normal kernel what would >> the "the oops, we got an interrupt code do?" >> I assume it would leave interrupts disabled when it returns? >> Like we currently do with the delayed disable of normal interrupts? >> > > Yeah, disable interrupts, and set a flag that the fake "sti" can test, and > just return without doing anything. > > (You may or may not also need to do extra work to Ack the hardware > interrupt etc, which may be irq-controller specific. Once the CPU has > accepted the interrupt, you may not be able to just leave it dangling) >
So it would be something like:
pda.intr_mask = 1; /* disable interrupts */ ... pda.intr_mask = 0; /* enable interrupts */ if (xchg(&pda.intr_pending, 0)) /* check pending */ asm("sti"); /* was pending; isr left cpu interrupts masked */
and in the interrupt handler:
if (pda.intr_mask) { pda.intr_pending = 1; regs->eflags &= ~IF; maybe_ack_interrupt_controller(); iret
}
?
J
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |