summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/st/cw1200/txrx.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2022-09-04 21:29:10 +0200
committerKalle Valo <kvalo@kernel.org>2022-09-07 11:02:59 +0300
commitdf8e1af22cee900826112e8e4612cbeb2b168929 (patch)
tree39c5ab0d467954e95f6052a1f52075f6ea37ece1 /drivers/net/wireless/st/cw1200/txrx.c
parentfbe7e18581ef55114258843358727c0cfeaa2860 (diff)
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/cw1200/txrx.c')
-rw-r--r--drivers/net/wireless/st/cw1200/txrx.c5
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;