diff options
author | Johannes Berg <johannes.berg@intel.com> | 2022-09-04 22:29:10 +0300 |
---|---|---|
committer | Kalle Valo <kvalo@kernel.org> | 2022-09-07 11:02:59 +0300 |
commit | df8e1af22cee900826112e8e4612cbeb2b168929 (patch) | |
tree | 39c5ab0d467954e95f6052a1f52075f6ea37ece1 /drivers/net/wireless/st | |
parent | fbe7e18581ef55114258843358727c0cfeaa2860 (diff) | |
download | linux-df8e1af22cee900826112e8e4612cbeb2b168929.tar.xz |
wifi: cw1200: remove RCU STA pointer handling in TX
We can call this in one of two ways: through mac80211, where
we're already in an RCU read-side critical section, or from
some other code in the driver where this pointer can only be
NULL. In any case, we get a 'free' already protected pointer
to the sta through info->control.sta, so we can use it on
the stack without any further protection.
Remove the rcu_dereference() and critical section.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220904212910.e5bc20dd17bf.Ib570ff7fde33c2b6eddef493a3541fa04eb47181@changeid
Diffstat (limited to 'drivers/net/wireless/st')
-rw-r--r-- | drivers/net/wireless/st/cw1200/txrx.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/net/wireless/st/cw1200/txrx.c b/drivers/net/wireless/st/cw1200/txrx.c index fde21fca6c5e..ab19e0403dc2 100644 --- a/drivers/net/wireless/st/cw1200/txrx.c +++ b/drivers/net/wireless/st/cw1200/txrx.c @@ -762,8 +762,7 @@ void cw1200_tx(struct ieee80211_hw *dev, if (ret) goto drop; - rcu_read_lock(); - sta = rcu_dereference(t.sta); + sta = t.sta; spin_lock_bh(&priv->ps_state_lock); { @@ -776,8 +775,6 @@ void cw1200_tx(struct ieee80211_hw *dev, if (tid_update && sta) ieee80211_sta_set_buffered(sta, t.txpriv.tid, true); - rcu_read_unlock(); - cw1200_bh_wakeup(priv); return; |