linux/drivers/net/wireless/b43
Larry Finger 09164043f6 b43: Fix lockdep splat
In https://bugzilla.kernel.org/show_bug.cgi?id=67561, a locking dependency is reported
when b43 is used with hostapd, and rfkill is used to kill the radio output.

The lockdep splat (in part) is as follows:

======================================================
[ INFO: possible circular locking dependency detected ]
3.12.0 #1 Not tainted
-------------------------------------------------------
rfkill/10040 is trying to acquire lock:
 (rtnl_mutex){+.+.+.}, at: [<ffffffff8146f282>] rtnl_lock+0x12/0x20

but task is already holding lock:
 (rfkill_global_mutex){+.+.+.}, at: [<ffffffffa04832ca>] rfkill_fop_write+0x6a/0x170 [rfkill]

--snip--

Chain exists of:
  rtnl_mutex --> misc_mtx --> rfkill_global_mutex

The fix is to move the initialization of the hardware random number generator
outside the code range covered by the rtnl_mutex.

Reported-by: yury <urykhy@gmail.com>
Tested-by: yury <urykhy@gmail.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Stable <stable@vger.kernel.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-01-13 14:50:02 -05:00
..
b43.h Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2013-04-10 14:09:54 -04:00
bus.c
bus.h
debugfs.c
debugfs.h
dma.c DMA-API: net: b43: replace dma_set_mask()+dma_set_coherent_mask() with new helper 2013-09-21 21:02:22 +01:00
dma.h B43: Handle DMA RX descriptor underrun 2013-05-08 17:15:06 -04:00
Kconfig b43: replace B43_BCMA_EXTRA with modparam allhwsupport 2013-06-27 13:42:15 -04:00
leds.c
leds.h
lo.c
lo.h
main.c b43: Fix lockdep splat 2014-01-13 14:50:02 -05:00
main.h b43: Fix firmware loading when driver is built into the kernel 2013-01-07 14:34:45 -05:00
Makefile b43: N-PHY: init 0x2057 radio 2012-08-06 14:56:35 -04:00
pcmcia.c drivers/net: use module_pcmcia_driver() in pcmcia drivers 2013-03-15 12:27:33 -07:00
pcmcia.h
phy_a.c
phy_a.h
phy_common.c b43: add helper waiting for given value in radio reg 2012-08-06 14:56:35 -04:00
phy_common.h b43: add helper waiting for given value in radio reg 2012-08-06 14:56:35 -04:00
phy_g.c
phy_g.h
phy_ht.c b43: HT-PHY: use enum for RSSI types 2013-04-23 12:27:56 +02:00
phy_ht.h b43: HT-PHY: define regs for power estimation 2013-04-23 12:27:56 +02:00
phy_lcn.c mac80211: Use a cfg80211_chan_def in ieee80211_hw_conf_chan 2013-03-25 19:19:35 +01:00
phy_lcn.h
phy_lp.c b43: use defines for board_type 2013-04-23 12:27:57 +02:00
phy_lp.h
phy_n.c drivers: net: wireless: b43: Fix possible NULL ptr dereference 2013-10-18 13:41:11 -04:00
phy_n.h b43: N-PHY: define missing registers 2013-04-23 12:27:57 +02:00
pio.c b43: fix tx path skb leaks 2012-12-10 15:49:59 -05:00
pio.h
radio_2055.c
radio_2055.h
radio_2056.c b43: make struct b2056_inittabs_pts const 2013-04-01 16:06:50 -04:00
radio_2056.h
radio_2057.c b43: N-PHY: init 0x2057 radio 2012-08-06 14:56:35 -04:00
radio_2057.h b43: N-PHY: init 0x2057 radio 2012-08-06 14:56:35 -04:00
radio_2059.c b43: HT-PHY: tables: don't duplicate core-generic regs 2013-04-23 12:27:55 +02:00
radio_2059.h b43: HT-PHY: tables: don't duplicate core-generic regs 2013-04-23 12:27:55 +02:00
rfkill.c
rfkill.h
sdio.c b43: remove __dev* attributes 2012-12-06 15:04:56 -05:00
sdio.h b43: mark some functions and structs static 2013-04-01 16:06:50 -04:00
sysfs.c
sysfs.h
tables_lpphy.c
tables_lpphy.h
tables_nphy.c b43: N-PHY: clean init tables 2013-04-23 12:27:58 +02:00
tables_nphy.h b43: N-PHY: clean init tables 2013-04-23 12:27:58 +02:00
tables_phy_ht.c
tables_phy_ht.h
tables_phy_lcn.c b43: mark some functions and structs static 2013-04-01 16:06:50 -04:00
tables_phy_lcn.h
tables.c
tables.h
wa.c
wa.h
xmit.c net:drivers/net: Miscellaneous conversions to ETH_ALEN 2013-10-02 17:04:45 -04:00
xmit.h