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 netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to