diff options
author | Johannes Berg <johannes.berg@intel.com> | 2022-05-05 23:04:21 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2022-05-09 14:00:07 +0200 |
commit | a59d55568d02bbbdf9c0cc15be9580180f855b4f (patch) | |
tree | c292268941c17f8c7331bac337fd30a7c2aeb843 | |
parent | c7e34c1e263f71b2dd78a12b6b7259a89b3a1f44 (diff) | |
download | linux-a59d55568d02bbbdf9c0cc15be9580180f855b4f.tar.bz2 |
mac80211_hwsim: fix RCU protected chanctx access
We need to RCU protect the chanctx_conf access, so
do that.
Fixes: 585625c955b1 ("mac80211_hwsim: check TX and STA bandwidth")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Link: https://lore.kernel.org/r/20220505230421.fb8055c081a2.Ic6da3307c77a909bd61a0ea25dc2a4b08fe1b03f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r-- | drivers/net/wireless/mac80211_hwsim.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index 28bfa7b7b73c..3ac3693dbecb 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c @@ -2202,11 +2202,14 @@ mac80211_hwsim_sta_rc_update(struct ieee80211_hw *hw, if (!data->use_chanctx) { confbw = data->bw; } else { - struct ieee80211_chanctx_conf *chanctx_conf = - rcu_dereference(vif->chanctx_conf); + struct ieee80211_chanctx_conf *chanctx_conf; + + rcu_read_lock(); + chanctx_conf = rcu_dereference(vif->chanctx_conf); if (!WARN_ON(!chanctx_conf)) confbw = chanctx_conf->def.width; + rcu_read_unlock(); } WARN(bw > hwsim_get_chanwidth(confbw), |