wifi: mwifiex: add missing locking for cfg80211 calls
authorSascha Hauer <s.hauer@pengutronix.de>
Wed, 18 Sep 2024 11:10:26 +0000 (13:10 +0200)
committerKalle Valo <kvalo@kernel.org>
Thu, 17 Oct 2024 16:45:49 +0000 (19:45 +0300)
cfg80211_rx_assoc_resp() and cfg80211_rx_mlme_mgmt() need to be called
with the wiphy locked, so lock it before calling these functions.

Fixes: 36995892c271 ("wifi: mwifiex: add host mlme for client mode")
Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://patch.msgid.link/20240918-mwifiex-cleanup-1-v2-1-2d0597187d3c@pengutronix.de
drivers/net/wireless/marvell/mwifiex/cmdevt.c
drivers/net/wireless/marvell/mwifiex/util.c

index 1cff001bdc514540e6ebddc449f541bfa04927f1..b30ed321c6251a2e52b4af12de97ee4a94ed37dd 100644 (file)
@@ -938,8 +938,10 @@ void mwifiex_process_assoc_resp(struct mwifiex_adapter *adapter)
                assoc_resp.links[0].bss = priv->req_bss;
                assoc_resp.buf = priv->assoc_rsp_buf;
                assoc_resp.len = priv->assoc_rsp_size;
+               wiphy_lock(priv->wdev.wiphy);
                cfg80211_rx_assoc_resp(priv->netdev,
                                       &assoc_resp);
+               wiphy_unlock(priv->wdev.wiphy);
                priv->assoc_rsp_size = 0;
        }
 }
index 42c04bf858da37d7f44c72fe22fb48f438505405..1f1f6280a0f2519c9a9e6f412a552bb072308282 100644 (file)
@@ -494,7 +494,9 @@ mwifiex_process_mgmt_packet(struct mwifiex_private *priv,
                        }
                }
 
+               wiphy_lock(priv->wdev.wiphy);
                cfg80211_rx_mlme_mgmt(priv->netdev, skb->data, pkt_len);
+               wiphy_unlock(priv->wdev.wiphy);
        }
 
        if (priv->adapter->host_mlme_enabled &&