• 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
af_netlink.c 39.9 KB