• Arjan van de Ven's avatar
    [PATCH] bcm43xx: netlink deadlock fix · 6abd219c
    Arjan van de Ven authored
    reported by Jure Repinc:
    
    > > http://bugzilla.kernel.org/show_bug.cgi?id=6773
    
    > > checked out dmesg output and found the message
    > >
    > > ======================================================
    > > [ BUG: hard-safe -> hard-unsafe lock order detected! ]
    > > ------------------------------------------------------
    > >
    > > starting at line 660 of the dmesg.txt that I will attach.
    
    The patch below should fix the deadlock, albeit I suspect it's not the
    "right" fix; the right fix may well be to move the rx processing in bcm43xx
    to softirq context.  [it's debatable, ipw2200 hit this exact same bug; at
    some point it's better to bite the bullet and move this to the common layer
    as my patch below does]
    
    Make the nl_table_lock irq-safe; it's taken for read in various netlink
    functions, including functions that several wireless drivers (ipw2200,
    bcm43xx) want to call from hardirq context.
    
    The deadlock was found by the lock validator.
    Signed-off-by: default avatarArjan van de Ven <arjan@linux.intel.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Cc: Michael Buesch <mb@bu3sch.de>
    Cc: "John W. Linville" <linville@tuxdriver.com>
    Cc: Jeff Garzik <jeff@garzik.org>
    Acked-by: default avatar"David S. Miller" <davem@davemloft.net>
    Cc: jamal <hadi@cyberus.ca>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    6abd219c
Name
Last commit
Last update
..
802 Loading commit data...
8021q Loading commit data...
appletalk Loading commit data...
atm Loading commit data...
ax25 Loading commit data...
bluetooth Loading commit data...
bridge Loading commit data...
core Loading commit data...
dccp Loading commit data...
decnet Loading commit data...
econet Loading commit data...
ethernet Loading commit data...
ieee80211 Loading commit data...
ipv4 Loading commit data...
ipv6 Loading commit data...
ipx Loading commit data...
irda Loading commit data...
key Loading commit data...
lapb Loading commit data...
llc Loading commit data...
netfilter Loading commit data...
netlink Loading commit data...
netrom Loading commit data...
packet Loading commit data...
rose Loading commit data...
rxrpc Loading commit data...
sched Loading commit data...
sctp Loading commit data...
sunrpc Loading commit data...
tipc Loading commit data...
unix Loading commit data...
wanrouter Loading commit data...
x25 Loading commit data...
xfrm Loading commit data...
Kconfig Loading commit data...
Makefile Loading commit data...
TUNABLE Loading commit data...
compat.c Loading commit data...
nonet.c Loading commit data...
socket.c Loading commit data...
sysctl_net.c Loading commit data...