From c1861ff1d63d0a185df6e2f0ec21455467aeb16c Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Tue, 25 Jul 2023 09:04:43 +0300 Subject: [PATCH] wifi: libertas: add missing calls to cancel_work_sync() Add missing 'cancel_work_sync()' in 'if_sdio_remove()' and on error handling path in 'if_sdio_probe()'. Signed-off-by: Dmitry Antipov Tested-by: Dan Williams Signed-off-by: Kalle Valo Link: https://lore.kernel.org/r/20230725060531.72968-1-dmantipov@yandex.ru --- drivers/net/wireless/marvell/libertas/if_sdio.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/wireless/marvell/libertas/if_sdio.c b/drivers/net/wireless/marvell/libertas/if_sdio.c index a63c5e622ee37..a35b33e84670a 100644 --- a/drivers/net/wireless/marvell/libertas/if_sdio.c +++ b/drivers/net/wireless/marvell/libertas/if_sdio.c @@ -1233,6 +1233,7 @@ err_activate_card: flush_workqueue(card->workqueue); lbs_remove_card(priv); free: + cancel_work_sync(&card->packet_worker); destroy_workqueue(card->workqueue); err_queue: while (card->packets) { @@ -1277,6 +1278,7 @@ static void if_sdio_remove(struct sdio_func *func) lbs_stop_card(card->priv); lbs_remove_card(card->priv); + cancel_work_sync(&card->packet_worker); destroy_workqueue(card->workqueue); while (card->packets) { -- 2.30.2