mirror of
https://github.com/torvalds/linux.git
synced 2024-12-22 19:01:37 +00:00
2bd9af046f
There's a circular locking dependency: ---> isdn_net_get_locked_lp --->lock &nd->queue_lock --->lock &nd->queue->xmit_lock ..................... ---->unlock &nd->queue_lock ---> isdn_net_writebuf_skb (called with &nd->queue->xmit_lock locked) ---->isdn_net_inc_frame_cnt ---->isdn_net_device_busy ----> lock &nd->queue_lock This will trigger lockdep warnings: ======================================================= [ INFO: possible circular locking dependency detected ] 2.6.32-rc4-testing #7 ------------------------------------------------------- ipppd/28379 is trying to acquire lock: (&netdev->queue_lock){......}, at: [<e62ad0fd>] isdn_net_device_busy+0x2c/0x74 [isdn] but task is already holding lock: (&netdev->local->xmit_lock){+.....}, at: [<e62aefc2>] isdn_net_write_super+0x3f/0x6e [isdn] which lock already depends on the new lock. ....... We don't need to lock nd->queue->xmit_lock to protect single isdn_net_lp_busy(). This can fix above lockdep warnings. Reported-and-tested-by: Tilman Schmidt <tilman@imap.cc> Signed-off-by: Xiaotian Feng <xtfeng@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net> |
||
---|---|---|
.. | ||
isdn_audio.c | ||
isdn_audio.h | ||
isdn_bsdcomp.c | ||
isdn_common.c | ||
isdn_common.h | ||
isdn_concap.c | ||
isdn_concap.h | ||
isdn_net.c | ||
isdn_net.h | ||
isdn_ppp.c | ||
isdn_ppp.h | ||
isdn_tty.c | ||
isdn_tty.h | ||
isdn_ttyfax.c | ||
isdn_ttyfax.h | ||
isdn_v110.c | ||
isdn_v110.h | ||
isdn_x25iface.c | ||
isdn_x25iface.h | ||
isdnhdlc.c | ||
Kconfig | ||
Makefile |