mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-24 19:40:21 +09:00
wireless: Remove redundant 'flush_workqueue()' calls
[ Upstream commit ff1cc2fa30 ]
'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
Stable-dep-of: cb5942b77c05 ("wifi: wilc1000: prevent use-after-free on vif when cleaning up all interfaces")
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Sasha Levin
parent
487eff913e
commit
0454915c83
@@ -3544,13 +3544,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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -3827,7 +3827,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
|
||||
|
||||
@@ -6739,7 +6739,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -3169,13 +3169,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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -881,7 +881,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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -1704,7 +1704,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);
|
||||
}
|
||||
|
||||
|
||||
@@ -3494,7 +3494,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);
|
||||
@@ -3511,7 +3510,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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user