]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: ath9k: Remove redundant rcu_read_lock/unlock() in spin_lock
authorpengdonglin <pengdonglin@xiaomi.com>
Tue, 16 Sep 2025 04:47:35 +0000 (12:47 +0800)
committerJeff Johnson <jeff.johnson@oss.qualcomm.com>
Thu, 30 Apr 2026 21:24:06 +0000 (14:24 -0700)
Since commit a8bb74acd8efe ("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: Toke <toke@toke.dk>
Cc: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: pengdonglin <pengdonglin@xiaomi.com>
Signed-off-by: pengdonglin <dolinux.peng@gmail.com>
Acked-by: Toke Høiland-Jørgensen <toke@toke.dk>
Link: https://patch.msgid.link/20250916044735.2316171-15-dolinux.peng@gmail.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
drivers/net/wireless/ath/ath9k/xmit.c

index 0ac9212e42f75ef3c3b87e4541d87075dc1c8efa..4a0f465aa2fe5063f4141ad4ae0ff3f8c5b67ade 100644 (file)
@@ -1993,7 +1993,6 @@ void ath_txq_schedule(struct ath_softc *sc, struct ath_txq *txq)
 
        ieee80211_txq_schedule_start(hw, txq->mac80211_qnum);
        spin_lock_bh(&sc->chan_lock);
-       rcu_read_lock();
 
        if (sc->cur_chan->stopped)
                goto out;
@@ -2011,7 +2010,6 @@ void ath_txq_schedule(struct ath_softc *sc, struct ath_txq *txq)
        }
 
 out:
-       rcu_read_unlock();
        spin_unlock_bh(&sc->chan_lock);
        ieee80211_txq_schedule_end(hw, txq->mac80211_qnum);
 }