On Sat, Mar 19, 2022 at 11:47:52PM +0100, Niels Dossche wrote: > --- a/drivers/net/wireless/marvell/mwifiex/11h.c > +++ b/drivers/net/wireless/marvell/mwifiex/11h.c > @@ -285,6 +285,7 @@ void mwifiex_dfs_chan_sw_work_queue(struct work_struct *work) > struct mwifiex_private *priv = > container_of(delayed_work, struct mwifiex_private, > dfs_chan_sw_work); > + struct net_device *netdev; > > bss_cfg = &priv->bss_cfg; > if (!bss_cfg->beacon_period) { > @@ -301,7 +302,11 @@ void mwifiex_dfs_chan_sw_work_queue(struct work_struct *work) > return; > } > > + netdev = priv->netdev; > + > mwifiex_dbg(priv->adapter, MSG, > "indicating channel switch completion to kernel\n"); > - cfg80211_ch_switch_notify(priv->netdev, &priv->dfs_chandef); > + mutex_lock(&netdev->ieee80211_ptr->mtx); A more appropriate route to this object might be priv->wdev.mtx. But otherwise, I think this makes sense, and matches what ath6kl_cfg80211_ch_switch_notify() and qtnf_event_handle_freq_change() do. With the suggested change: Reviewed-by: Brian Norris <briannorris@xxxxxxxxxxxx> Thanks. > + cfg80211_ch_switch_notify(netdev, &priv->dfs_chandef); > + mutex_unlock(&netdev->ieee80211_ptr->mtx); > } > -- > 2.35.1 >