mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
wifi: mac80211: Remove redundant rcu_read_lock/unlock() in spin_lock
Since commit a8bb74acd8 ("rcu: Consolidate RCU-sched update-side function definitions")
there is no difference between rcu_read_lock(), rcu_read_lock_bh() and
rcu_read_lock_sched() in terms of RCU read section and the relevant grace
period. That means that spin_lock(), which implies rcu_read_lock_sched(),
also implies rcu_read_lock().
There is no need no explicitly start a RCU read section if one has already
been started implicitly by spin_lock().
Simplify the code and remove the inner rcu_read_lock() invocation.
Cc: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: pengdonglin <pengdonglin@xiaomi.com>
Signed-off-by: pengdonglin <dolinux.peng@gmail.com>
Link: https://patch.msgid.link/20250916044735.2316171-11-dolinux.peng@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
committed by
Johannes Berg
parent
a37a6f5443
commit
872e397d62
@@ -4935,7 +4935,6 @@ static int ieee80211_get_txq_stats(struct wiphy *wiphy,
|
||||
int ret = 0;
|
||||
|
||||
spin_lock_bh(&local->fq.lock);
|
||||
rcu_read_lock();
|
||||
|
||||
if (wdev) {
|
||||
sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
|
||||
@@ -4961,7 +4960,6 @@ static int ieee80211_get_txq_stats(struct wiphy *wiphy,
|
||||
}
|
||||
|
||||
out:
|
||||
rcu_read_unlock();
|
||||
spin_unlock_bh(&local->fq.lock);
|
||||
|
||||
return ret;
|
||||
|
||||
@@ -82,7 +82,6 @@ static ssize_t aqm_read(struct file *file,
|
||||
int len = 0;
|
||||
|
||||
spin_lock_bh(&local->fq.lock);
|
||||
rcu_read_lock();
|
||||
|
||||
len = scnprintf(buf, sizeof(buf),
|
||||
"access name value\n"
|
||||
@@ -105,7 +104,6 @@ static ssize_t aqm_read(struct file *file,
|
||||
fq->limit,
|
||||
fq->quantum);
|
||||
|
||||
rcu_read_unlock();
|
||||
spin_unlock_bh(&local->fq.lock);
|
||||
|
||||
return simple_read_from_buffer(user_buf, count, ppos,
|
||||
|
||||
@@ -625,7 +625,6 @@ static ssize_t ieee80211_if_fmt_aqm(
|
||||
txqi = to_txq_info(sdata->vif.txq);
|
||||
|
||||
spin_lock_bh(&local->fq.lock);
|
||||
rcu_read_lock();
|
||||
|
||||
len = scnprintf(buf,
|
||||
buflen,
|
||||
@@ -642,7 +641,6 @@ static ssize_t ieee80211_if_fmt_aqm(
|
||||
txqi->tin.tx_bytes,
|
||||
txqi->tin.tx_packets);
|
||||
|
||||
rcu_read_unlock();
|
||||
spin_unlock_bh(&local->fq.lock);
|
||||
|
||||
return len;
|
||||
|
||||
@@ -148,7 +148,6 @@ static ssize_t sta_aqm_read(struct file *file, char __user *userbuf,
|
||||
return -ENOMEM;
|
||||
|
||||
spin_lock_bh(&local->fq.lock);
|
||||
rcu_read_lock();
|
||||
|
||||
p += scnprintf(p,
|
||||
bufsz + buf - p,
|
||||
@@ -178,7 +177,6 @@ static ssize_t sta_aqm_read(struct file *file, char __user *userbuf,
|
||||
test_bit(IEEE80211_TXQ_DIRTY, &txqi->flags) ? " DIRTY" : "");
|
||||
}
|
||||
|
||||
rcu_read_unlock();
|
||||
spin_unlock_bh(&local->fq.lock);
|
||||
|
||||
rv = simple_read_from_buffer(userbuf, count, ppos, buf, p - buf);
|
||||
|
||||
@@ -2637,13 +2637,11 @@ static void sta_set_tidstats(struct sta_info *sta,
|
||||
|
||||
if (link_id < 0 && tid < IEEE80211_NUM_TIDS) {
|
||||
spin_lock_bh(&local->fq.lock);
|
||||
rcu_read_lock();
|
||||
|
||||
tidstats->filled |= BIT(NL80211_TID_STATS_TXQ_STATS);
|
||||
ieee80211_fill_txq_stats(&tidstats->txq_stats,
|
||||
to_txq_info(sta->sta.txq[tid]));
|
||||
|
||||
rcu_read_unlock();
|
||||
spin_unlock_bh(&local->fq.lock);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user