diff options
author | Larry Finger <Larry.Finger@lwfinger.net> | 2013-02-25 06:09:24 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-03-03 22:03:33 (GMT) |
commit | 66c45d44d42012bd9ad5e5154cd7d2b391b1183e (patch) | |
tree | 91f2a3d6e6f549c652d2e3eb3fbb77be29df612c /fs/ubifs | |
parent | e3d7ed9c659eebbf83fc20e8c80bb3c58a24028d (diff) | |
download | linux-fsl-qoriq-66c45d44d42012bd9ad5e5154cd7d2b391b1183e.tar.xz |
b43: Fix lockdep splat on module unload
commit 63a02ce1c5c59baa40b99756492e3ec8d6b51483 upstream.
On unload, b43 produces a lockdep warning that can be summarized in the
following way:
======================================================
[ INFO: possible circular locking dependency detected ]
3.8.0-wl+ #117 Not tainted
-------------------------------------------------------
modprobe/5557 is trying to acquire lock:
((&wl->firmware_load)){+.+.+.}, at: [<ffffffff81062160>] flush_work+0x0/0x2a0
but task is already holding lock:
(rtnl_mutex){+.+.+.}, at: [<ffffffff813bd7d2>] rtnl_lock+0x12/0x20
which lock already depends on the new lock.
[ INFO: possible circular locking dependency detected ]
======================================================
The full output is available at http://lkml.indiana.edu/hypermail/linux/kernel/1302.3/00060.html.
To summarize, commit 6b6fa58 added a 'cancel_work_sync(&wl->firmware_load)'
call in the wrong place.
The fix is to move the cancel_work_sync() call to b43_bcma_remove() and
b43_ssb_remove(). Thanks to Johannes Berg and Michael Buesch for help in
diagnosing the log output.
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/ubifs')
0 files changed, 0 insertions, 0 deletions