From: Qinglang Miao <[email protected]>

[ Upstream commit 7ec8a926188eb8e7a3cbaca43ec44f2d7146d71b ]

Add the missing destroy_workqueue() before return from
cw1200_init_common in the error handling case.

Fixes: a910e4a94f69 ("cw1200: add driver for the ST-E CW1100 & CW1200 WLAN 
chipsets")
Reported-by: Hulk Robot <[email protected]>
Signed-off-by: Qinglang Miao <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Sasha Levin <[email protected]>
---
 drivers/net/wireless/cw1200/main.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/wireless/cw1200/main.c 
b/drivers/net/wireless/cw1200/main.c
index 317daa968e037..057725b06f640 100644
--- a/drivers/net/wireless/cw1200/main.c
+++ b/drivers/net/wireless/cw1200/main.c
@@ -385,6 +385,7 @@ static struct ieee80211_hw *cw1200_init_common(const u8 
*macaddr,
                                    CW1200_LINK_ID_MAX,
                                    cw1200_skb_dtor,
                                    priv)) {
+               destroy_workqueue(priv->workqueue);
                ieee80211_free_hw(hw);
                return NULL;
        }
@@ -396,6 +397,7 @@ static struct ieee80211_hw *cw1200_init_common(const u8 
*macaddr,
                        for (; i > 0; i--)
                                cw1200_queue_deinit(&priv->tx_queue[i - 1]);
                        cw1200_queue_stats_deinit(&priv->tx_queue_stats);
+                       destroy_workqueue(priv->workqueue);
                        ieee80211_free_hw(hw);
                        return NULL;
                }
-- 
2.27.0



Reply via email to