aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWen Gong <wgong@codeaurora.org>2019-06-27 21:21:51 +0300
committerKalle Valo <kvalo@codeaurora.org>2019-06-28 22:12:59 +0300
commit3ed39f8e747a7aafeec07bb244f2c3a1bdca5730 (patch)
tree09e1914e9ea8c0f7ce741ea1eedc80ce8b448ab2
parentath10k: Move non-fatal warn logs to dbg level for SDIO chip (diff)
downloadlinux-dev-3ed39f8e747a7aafeec07bb244f2c3a1bdca5730.tar.xz
linux-dev-3ed39f8e747a7aafeec07bb244f2c3a1bdca5730.zip
ath10k: destroy sdio workqueue while remove sdio module
The workqueue need to flush and destory while remove sdio module, otherwise it will have thread which is not destory after remove sdio modules. Tested with QCA6174 SDIO with firmware WLAN.RMH.4.4.1-00007-QCARMSWP-1. Signed-off-by: Wen Gong <wgong@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
-rw-r--r--drivers/net/wireless/ath/ath10k/sdio.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath10k/sdio.c b/drivers/net/wireless/ath/ath10k/sdio.c
index 08bbbc9933be..8ed4fbd8d6c3 100644
--- a/drivers/net/wireless/ath/ath10k/sdio.c
+++ b/drivers/net/wireless/ath/ath10k/sdio.c
@@ -2097,6 +2097,9 @@ static void ath10k_sdio_remove(struct sdio_func *func)
ath10k_core_unregister(ar);
ath10k_core_destroy(ar);
+
+ flush_workqueue(ar_sdio->workqueue);
+ destroy_workqueue(ar_sdio->workqueue);
}
static const struct sdio_device_id ath10k_sdio_devices[] = {