wireless: Remove redundant 'flush_workqueue()' calls
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 10 Oct 2021 07:09:11 +0000 (09:09 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 13 Oct 2021 06:22:19 +0000 (09:22 +0300)
'destroy_workqueue()' already drains the queue before destroying it, so
there is no need to flush it explicitly.

Remove the redundant 'flush_workqueue()' calls.

This was generated with coccinelle:

@@
expression E;
@@
-  flush_workqueue(E);
destroy_workqueue(E);

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/0855d51423578ad019c0264dad3fe47a2e8af9c7.1633849511.git.christophe.jaillet@wanadoo.fr
13 files changed:
drivers/net/wireless/ath/ath10k/core.c
drivers/net/wireless/ath/ath10k/sdio.c
drivers/net/wireless/intel/iwlegacy/3945-mac.c
drivers/net/wireless/intel/iwlegacy/4965-mac.c
drivers/net/wireless/intel/iwlwifi/dvm/main.c
drivers/net/wireless/marvell/mwifiex/cfg80211.c
drivers/net/wireless/marvell/mwifiex/main.c
drivers/net/wireless/microchip/wilc1000/netdev.c
drivers/net/wireless/quantenna/qtnfmac/core.c
drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c
drivers/net/wireless/realtek/rtlwifi/pci.c
drivers/net/wireless/rndis_wlan.c
drivers/net/wireless/st/cw1200/bh.c

index c21e055..112e04b 100644 (file)
@@ -3520,13 +3520,10 @@ EXPORT_SYMBOL(ath10k_core_create);
 
 void ath10k_core_destroy(struct ath10k *ar)
 {
-       flush_workqueue(ar->workqueue);
        destroy_workqueue(ar->workqueue);
 
-       flush_workqueue(ar->workqueue_aux);
        destroy_workqueue(ar->workqueue_aux);
 
-       flush_workqueue(ar->workqueue_tx_complete);
        destroy_workqueue(ar->workqueue_tx_complete);
 
        ath10k_debug_destroy(ar);
index eb70521..63e1c2d 100644 (file)
@@ -2650,7 +2650,6 @@ static void ath10k_sdio_remove(struct sdio_func *func)
 
        ath10k_core_destroy(ar);
 
-       flush_workqueue(ar_sdio->workqueue);
        destroy_workqueue(ar_sdio->workqueue);
 }
 
index 45abb25..bd4e7d7 100644 (file)
@@ -3819,7 +3819,6 @@ il3945_pci_remove(struct pci_dev *pdev)
        il3945_unset_hw_params(il);
 
        /*netif_stop_queue(dev); */
-       flush_workqueue(il->workqueue);
 
        /* ieee80211_unregister_hw calls il3945_mac_stop, which flushes
         * il->workqueue... so we can't take down the workqueue
index 0223532..d93900e 100644 (file)
@@ -6731,7 +6731,6 @@ il4965_pci_remove(struct pci_dev *pdev)
        il_eeprom_free(il);
 
        /*netif_stop_queue(dev); */
-       flush_workqueue(il->workqueue);
 
        /* ieee80211_unregister_hw calls il_mac_stop, which flushes
         * il->workqueue... so we can't take down the workqueue
index cc7b69f..69d1aae 100644 (file)
@@ -1525,7 +1525,6 @@ static void iwl_op_mode_dvm_stop(struct iwl_op_mode *op_mode)
        kfree(priv->nvm_data);
 
        /*netif_stop_queue(dev); */
-       flush_workqueue(priv->workqueue);
 
        /* ieee80211_unregister_hw calls iwlagn_mac_stop, which flushes
         * priv->workqueue... so we can't take down the workqueue
index d62a20d..ef69757 100644 (file)
@@ -3218,13 +3218,11 @@ int mwifiex_del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev)
                cfg80211_unregister_netdevice(wdev->netdev);
 
        if (priv->dfs_cac_workqueue) {
-               flush_workqueue(priv->dfs_cac_workqueue);
                destroy_workqueue(priv->dfs_cac_workqueue);
                priv->dfs_cac_workqueue = NULL;
        }
 
        if (priv->dfs_chan_sw_workqueue) {
-               flush_workqueue(priv->dfs_chan_sw_workqueue);
                destroy_workqueue(priv->dfs_chan_sw_workqueue);
                priv->dfs_chan_sw_workqueue = NULL;
        }
index 17399d4..7943fd3 100644 (file)
@@ -498,13 +498,11 @@ static void mwifiex_free_adapter(struct mwifiex_adapter *adapter)
 static void mwifiex_terminate_workqueue(struct mwifiex_adapter *adapter)
 {
        if (adapter->workqueue) {
-               flush_workqueue(adapter->workqueue);
                destroy_workqueue(adapter->workqueue);
                adapter->workqueue = NULL;
        }
 
        if (adapter->rx_workqueue) {
-               flush_workqueue(adapter->rx_workqueue);
                destroy_workqueue(adapter->rx_workqueue);
                adapter->rx_workqueue = NULL;
        }
index 7e4d923..d3b33c6 100644 (file)
@@ -880,7 +880,6 @@ void wilc_netdev_cleanup(struct wilc *wilc)
        srcu_read_unlock(&wilc->srcu, srcu_idx);
 
        wilc_wfi_deinit_mon_interface(wilc, false);
-       flush_workqueue(wilc->hif_workqueue);
        destroy_workqueue(wilc->hif_workqueue);
 
        while (ifc_cnt < WILC_NUM_CONCURRENT_IFC) {
index b4dd60b..0172523 100644 (file)
@@ -811,13 +811,11 @@ void qtnf_core_detach(struct qtnf_bus *bus)
        bus->fw_state = QTNF_FW_STATE_DETACHED;
 
        if (bus->workqueue) {
-               flush_workqueue(bus->workqueue);
                destroy_workqueue(bus->workqueue);
                bus->workqueue = NULL;
        }
 
        if (bus->hprio_workqueue) {
-               flush_workqueue(bus->hprio_workqueue);
                destroy_workqueue(bus->hprio_workqueue);
                bus->hprio_workqueue = NULL;
        }
index 5d93c87..9ad4c12 100644 (file)
@@ -387,7 +387,6 @@ static int qtnf_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id)
        return 0;
 
 error:
-       flush_workqueue(pcie_priv->workqueue);
        destroy_workqueue(pcie_priv->workqueue);
        pci_set_drvdata(pdev, NULL);
        return ret;
@@ -416,7 +415,6 @@ static void qtnf_pcie_remove(struct pci_dev *dev)
                qtnf_core_detach(bus);
 
        netif_napi_del(&bus->mux_napi);
-       flush_workqueue(priv->workqueue);
        destroy_workqueue(priv->workqueue);
        tasklet_kill(&priv->reclaim_tq);
 
index 3776495..ad327ba 100644 (file)
@@ -1743,7 +1743,6 @@ static void rtl_pci_deinit(struct ieee80211_hw *hw)
        tasklet_kill(&rtlpriv->works.irq_tasklet);
        cancel_work_sync(&rtlpriv->works.lps_change_work);
 
-       flush_workqueue(rtlpriv->works.rtl_wq);
        destroy_workqueue(rtlpriv->works.rtl_wq);
 }
 
index 63ce244..ff24483 100644 (file)
@@ -3501,7 +3501,6 @@ fail:
        cancel_delayed_work_sync(&priv->dev_poller_work);
        cancel_delayed_work_sync(&priv->scan_work);
        cancel_work_sync(&priv->work);
-       flush_workqueue(priv->workqueue);
        destroy_workqueue(priv->workqueue);
 
        wiphy_free(wiphy);
@@ -3518,7 +3517,6 @@ static void rndis_wlan_unbind(struct usbnet *usbdev, struct usb_interface *intf)
        cancel_delayed_work_sync(&priv->dev_poller_work);
        cancel_delayed_work_sync(&priv->scan_work);
        cancel_work_sync(&priv->work);
-       flush_workqueue(priv->workqueue);
        destroy_workqueue(priv->workqueue);
 
        rndis_unbind(usbdev, intf);
index 8bade5d..10e019c 100644 (file)
@@ -85,8 +85,6 @@ void cw1200_unregister_bh(struct cw1200_common *priv)
        atomic_inc(&priv->bh_term);
        wake_up(&priv->bh_wq);
 
-       flush_workqueue(priv->bh_workqueue);
-
        destroy_workqueue(priv->bh_workqueue);
        priv->bh_workqueue = NULL;