• Ingo Molnar's avatar
    genirq: Run irq handlers with interrupts disabled · e58aa3d2
    Ingo Molnar authored
    Running interrupt handlers with interrupts enabled can cause stack
    overflows. That has been observed with multiqueue NICs delivering all
    their interrupts to a single core. We might band aid that somehow by
    checking the interrupt stacks, but the real safe fix is to run the irq
    handlers with interrupts disabled.
    
    Drivers for whacky hardware still can reenable them in the handler
    itself, if the need arises. (They do already due to lockdep)
    
    The risk of doing this is rather low:
    
     - lockdep already enforces this
     - CONFIG_NOHZ has shaken out the drivers which relied on jiffies updates
     - time keeping is not longer sensitive to the timer interrupt being delayed
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: David Miller <davem@davemloft.net>
    Cc: Greg Kroah-Hartman <gregkh@suse.de>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Linus Torvalds <torvalds@osdl.org>
    LKML-Reference: <20100326000405.758579387@linutronix.de>
    e58aa3d2
handle.c 12.6 KB