Thread (3 messages) 3 messages, 2 authors, 2003-09-30

Re: Fw: Badness in local_bh_enable at kernel/softirq.c:119

From: David S. Miller <hidden>
Date: 2003-09-30 11:53:06

On Mon, 29 Sep 2003 22:49:29 -0700
"David S. Miller" [off-list ref] wrote:
On Mon, 29 Sep 2003 14:36:42 -0700
Andrew Morton [off-list ref] wrote:
quoted
Oh, it's taking xmit_lock in a timer handler.  I give up.
I think e1000 should rethink what it is doing :-)
Sorry, in case it isn't painfully obvious, instead of hinting
at it let me state explicitly that ->xmit_lock is a BH disabling
lock not an IRQ disabling one.

Therefore, e1000's IRQ disabling when grabbing that lock is
buggy and need to be changed to BH disabling.

If it needs to disable IRQs for it's own internal locking, it
needs to do so such that such IRQ disabling internal locks
are not held while kfree_skb() is being invoked.

Calling kfree_skb() with IRQs disabled in the e1000 driver is
the cause of this bug.

Jeff, if you pushed these e1000 updates that make it grap
->xmit_lock() with disabling IRQs instead of BH into 2.4.x
trees too, beware!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help