staging: rtl8192e: Remove mutex from rtllib_softmac_free()
authorPhilipp Hortmann <philipp.g.hortmann@gmail.com>
Sun, 24 Sep 2023 19:50:55 +0000 (21:50 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 26 Sep 2023 09:14:32 +0000 (11:14 +0200)
The following commands use the mutex ieee->wx_mutex:
cancel_delayed_work_sync(&ieee->associate_retry_wq)
cancel_delayed_work_sync(&ieee->associate_procedure_wq)
cancel_work_sync(&ieee->wx_sync_scan_wq)
Therefore they cannot be canceled with ieee->wx_mutex locked. As the
work functions are executed time shifted during normal operation of the
driver, proper locking can only be done inside the functions.

Signed-off-by: Philipp Hortmann <philipp.g.hortmann@gmail.com>
Link: https://lore.kernel.org/r/a5308876bd8fabcb5f8b25d14dbad2c1f68ce59f.1695582999.git.philipp.g.hortmann@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8192e/rtllib_softmac.c

index d3468b646ca8a8d0ca35479f16f574a34d834b3c..c874468d075c461fa7e86dcedd8a7aaf98d27b3b 100644 (file)
@@ -2461,7 +2461,6 @@ int rtllib_softmac_init(struct rtllib_device *ieee)
 
 void rtllib_softmac_free(struct rtllib_device *ieee)
 {
-       mutex_lock(&ieee->wx_mutex);
        del_timer_sync(&ieee->associate_timer);
 
        cancel_delayed_work_sync(&ieee->associate_retry_wq);
@@ -2477,7 +2476,6 @@ void rtllib_softmac_free(struct rtllib_device *ieee)
 
        kfree(ieee->dot11d_info);
        ieee->dot11d_info = NULL;
-       mutex_unlock(&ieee->wx_mutex);
 }
 
 static inline struct sk_buff *