diff options
Diffstat (limited to 'drivers/net/wireless/b43/main.c')
-rw-r--r-- | drivers/net/wireless/b43/main.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c index 9b907a36bb8c..df6b26a0c05e 100644 --- a/drivers/net/wireless/b43/main.c +++ b/drivers/net/wireless/b43/main.c | |||
@@ -3874,6 +3874,7 @@ static struct b43_wldev * b43_wireless_core_stop(struct b43_wldev *dev) | |||
3874 | { | 3874 | { |
3875 | struct b43_wl *wl = dev->wl; | 3875 | struct b43_wl *wl = dev->wl; |
3876 | struct b43_wldev *orig_dev; | 3876 | struct b43_wldev *orig_dev; |
3877 | u32 mask; | ||
3877 | 3878 | ||
3878 | redo: | 3879 | redo: |
3879 | if (!dev || b43_status(dev) < B43_STAT_STARTED) | 3880 | if (!dev || b43_status(dev) < B43_STAT_STARTED) |
@@ -3920,7 +3921,8 @@ redo: | |||
3920 | goto redo; | 3921 | goto redo; |
3921 | return dev; | 3922 | return dev; |
3922 | } | 3923 | } |
3923 | B43_WARN_ON(b43_read32(dev, B43_MMIO_GEN_IRQ_MASK)); | 3924 | mask = b43_read32(dev, B43_MMIO_GEN_IRQ_MASK); |
3925 | B43_WARN_ON(mask != 0xFFFFFFFF && mask); | ||
3924 | 3926 | ||
3925 | /* Drain the TX queue */ | 3927 | /* Drain the TX queue */ |
3926 | while (skb_queue_len(&wl->tx_queue)) | 3928 | while (skb_queue_len(&wl->tx_queue)) |
@@ -4499,6 +4501,7 @@ static void b43_op_stop(struct ieee80211_hw *hw) | |||
4499 | 4501 | ||
4500 | cancel_work_sync(&(wl->beacon_update_trigger)); | 4502 | cancel_work_sync(&(wl->beacon_update_trigger)); |
4501 | 4503 | ||
4504 | wiphy_rfkill_stop_polling(hw->wiphy); | ||
4502 | mutex_lock(&wl->mutex); | 4505 | mutex_lock(&wl->mutex); |
4503 | if (b43_status(dev) >= B43_STAT_STARTED) { | 4506 | if (b43_status(dev) >= B43_STAT_STARTED) { |
4504 | dev = b43_wireless_core_stop(dev); | 4507 | dev = b43_wireless_core_stop(dev); |
@@ -4997,7 +5000,7 @@ static void b43_remove(struct ssb_device *dev) | |||
4997 | 5000 | ||
4998 | if (list_empty(&wl->devlist)) { | 5001 | if (list_empty(&wl->devlist)) { |
4999 | b43_rng_exit(wl); | 5002 | b43_rng_exit(wl); |
5000 | b43_leds_unregister(wldev); | 5003 | b43_leds_unregister(wl); |
5001 | /* Last core on the chip unregistered. | 5004 | /* Last core on the chip unregistered. |
5002 | * We can destroy common struct b43_wl. | 5005 | * We can destroy common struct b43_wl. |
5003 | */ | 5006 | */ |