netdev
[Top] [All Lists]

Re: BUG or not? GFP_KERNEL with interrupts disabled.

To: torvalds@xxxxxxxxxxxxx
Subject: Re: BUG or not? GFP_KERNEL with interrupts disabled.
From: "David S. Miller" <davem@xxxxxxxxxx>
Date: Thu, 27 Mar 2003 13:29:54 -0800 (PST)
Cc: dane@xxxxxxxxxx, shmulik.hen@xxxxxxxxx, bonding-devel@xxxxxxxxxxxxxxxxxxxxx, bonding-announce@xxxxxxxxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, linux-net@xxxxxxxxxxxxxxx, mingo@xxxxxxxxxx, kuznet@xxxxxxxxxxxxx
In-reply-to: <20030327.125507.104718048.davem@redhat.com>
References: <Pine.LNX.4.44.0303271120230.31459-100000@home.transmeta.com> <20030327.113933.123322481.davem@redhat.com> <20030327.125507.104718048.davem@redhat.com>
Sender: netdev-bounce@xxxxxxxxxxx
   From: "David S. Miller" <davem@xxxxxxxxxx>
   Date: Thu, 27 Mar 2003 12:55:07 -0800 (PST)

Alexey has pointed out a bug in my changes.

   @@ -1088,6 +1086,9 @@ void smp_percpu_timer_interrupt(struct p
                                     : /* no outputs */
                                     : "r" (pstate));
        } while (time_after_eq(tick, compare));
   +
   +    local_irq_enable();
   +    irq_exit();
    }
    
    static void __init smp_setup_percpu_timer(void)

Of course this is bogus.

The IRQ enable needs to occur in the irq_exit() branch right
before do_softirq() is invoked.

<Prev in Thread] Current Thread [Next in Thread>