aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/realtek/rtl8xxxu
diff options
context:
space:
mode:
authorGravatar Martin Kaistra <martin.kaistra@linutronix.de> 2024-01-11 17:36:27 +0100
committerGravatar Kalle Valo <kvalo@kernel.org> 2024-01-14 21:08:01 +0200
commit1213acb478a7181cd73eeaf00db430f1e45b1361 (patch)
tree2460f2abdc8939f1a0673c0a8d7e109f4042374d /drivers/net/wireless/realtek/rtl8xxxu
parentwifi: rtlwifi: rtl_usb: Use sync register writes (diff)
downloadlinux-1213acb478a7181cd73eeaf00db430f1e45b1361.tar.gz
linux-1213acb478a7181cd73eeaf00db430f1e45b1361.tar.bz2
linux-1213acb478a7181cd73eeaf00db430f1e45b1361.zip
wifi: rtl8xxxu: add cancel_work_sync() for c2hcmd_work
The workqueue might still be running, when the driver is stopped. To avoid a use-after-free, call cancel_work_sync() in rtl8xxxu_stop(). Fixes: e542e66b7c2e ("rtl8xxxu: add bluetooth co-existence support for single antenna") Signed-off-by: Martin Kaistra <martin.kaistra@linutronix.de> Reviewed-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://msgid.link/20240111163628.320697-2-martin.kaistra@linutronix.de
Diffstat (limited to 'drivers/net/wireless/realtek/rtl8xxxu')
-rw-r--r--drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
index aac594093629..757ebd46452e 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
@@ -7480,6 +7480,7 @@ static void rtl8xxxu_stop(struct ieee80211_hw *hw)
if (priv->usb_interrupts)
rtl8xxxu_write32(priv, REG_USB_HIMR, 0);
+ cancel_work_sync(&priv->c2hcmd_work);
cancel_delayed_work_sync(&priv->ra_watchdog);
rtl8xxxu_free_rx_resources(priv);