Re: (irda) Badness in local_bh_enable at kernel/softirq.c:121

From: David S. Miller
Date: Fri Dec 26 2003 - 17:36:45 EST


On Fri, 26 Dec 2003 13:00:31 +0000
Russell King <rmk+lkml@xxxxxxxxxxxxxxxx> wrote:

> I've just been testing w83977af_ir with ircomm on a NetWinder (ARM) and
> a Nokia mobile phone, and, while closing down the connection by exiting
> minicom, I saw this which looks particularly evil. I'm not sure exactly
> when this occurred because I was running minicom over ssh.

This is akin to the PPP issues, and all of this basically is telling
that the TTY driver's locking conflicts with networking quite badly.

In this case:

> Badness in local_bh_enable at kernel/softirq.c:121
> [<c00429c4>] (local_bh_enable+0x0/0x84) from [<c014d1b4>] (dev_queue_xmit+0x108/0x20c)
> [<c014d0ac>] (dev_queue_xmit+0x0/0x20c) from [<bf00ee68>] (irlap_send_data_primary_poll+0xdc/0x1c4 [irda])

local_bh_enable() with hardware interrupts disabled, which is
racy and illegal. Who disabled CPU interrupts? Let's see:

> [<bf03b4b0>] (ircomm_tty_shutdown+0x0/0x178 [ircomm_tty]) from [<bf03a9c0>] (ircomm_tty_close+0x15c/0x240 [ircomm_tty])

And this is where the spin_lock_irqsave() occurs, that leads
to all of the trouble.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/