• Benjamin Herrenschmidt's avatar
    [POWERPC] Fixup softirq preempt count · e6768a4f
    Benjamin Herrenschmidt authored
    This fixes the handling of the preempt count when switching
    interrupt stacks so that HW interrupt properly get the softirq
    mask copied over from the previous stack.
    
    It also initializes the softirq stack preempt_count to 0 instead
    of SOFTIRQ_OFFSET, like x86, as __do_softirq() does the increment,
    and we hit some lockdep checks if we have it twice.
    
    That means we do run for a little while off the softirq stack
    with the preempt-count set to 0, which could be deadly if we
    try to take a softirq at that point, however we do so with
    interrupts disabled, so I think we are ok.
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    e6768a4f
irq.c 25.8 KB