b43: Fix lockdep splat on module unload
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / net / wireless / b43 / main.c
index 806e34c..0568273 100644 (file)
@@ -4214,7 +4214,6 @@ redo:
        mutex_unlock(&wl->mutex);
        cancel_delayed_work_sync(&dev->periodic_work);
        cancel_work_sync(&wl->tx_work);
-       cancel_work_sync(&wl->firmware_load);
        mutex_lock(&wl->mutex);
        dev = wl->current_dev;
        if (!dev || b43_status(dev) < B43_STAT_STARTED) {
@@ -5434,6 +5433,7 @@ static void b43_bcma_remove(struct bcma_device *core)
        /* We must cancel any work here before unregistering from ieee80211,
         * as the ieee80211 unreg will destroy the workqueue. */
        cancel_work_sync(&wldev->restart_work);
+       cancel_work_sync(&wl->firmware_load);
 
        B43_WARN_ON(!wl);
        if (!wldev->fw.ucode.data)
@@ -5510,6 +5510,7 @@ static void b43_ssb_remove(struct ssb_device *sdev)
        /* We must cancel any work here before unregistering from ieee80211,
         * as the ieee80211 unreg will destroy the workqueue. */
        cancel_work_sync(&wldev->restart_work);
+       cancel_work_sync(&wl->firmware_load);
 
        B43_WARN_ON(!wl);
        if (!wldev->fw.ucode.data)