浏览代码

mwl8k: prevent module unload hang

We need to unregister our ieee80211_hw before resetting the chip, as
the former causes firmware commands to be issued which will time out
once the chip has been reset.

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Acked-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Lennert Buytenhek 16 年之前
父节点
当前提交
60aa569f92
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      drivers/net/wireless/mwl8k.c

+ 2 - 2
drivers/net/wireless/mwl8k.c

@@ -3733,6 +3733,8 @@ static void __devexit mwl8k_remove(struct pci_dev *pdev)
 
 
 	ieee80211_stop_queues(hw);
 	ieee80211_stop_queues(hw);
 
 
+	ieee80211_unregister_hw(hw);
+
 	/* Remove tx reclaim tasklet */
 	/* Remove tx reclaim tasklet */
 	tasklet_kill(&priv->tx_reclaim_task);
 	tasklet_kill(&priv->tx_reclaim_task);
 
 
@@ -3746,8 +3748,6 @@ static void __devexit mwl8k_remove(struct pci_dev *pdev)
 	for (i = 0; i < MWL8K_TX_QUEUES; i++)
 	for (i = 0; i < MWL8K_TX_QUEUES; i++)
 		mwl8k_txq_reclaim(hw, i, 1);
 		mwl8k_txq_reclaim(hw, i, 1);
 
 
-	ieee80211_unregister_hw(hw);
-
 	for (i = 0; i < MWL8K_TX_QUEUES; i++)
 	for (i = 0; i < MWL8K_TX_QUEUES; i++)
 		mwl8k_txq_deinit(hw, i);
 		mwl8k_txq_deinit(hw, i);