Re: [PATCH v5 4/4] wifi: ath12k: implement custom wake_tx_queue with flow control
From: Jose Ignacio Tornos Martinez
Date: Thu Sep 17 2026 - 02:45:34 EST
Hello Jeff,
Sorry for the late reply, I was on leave as noted in the v6 cover letter.
> I have a fixup for ath9k which does:
> 171 - ratetbl = rcu_dereference(sta->rates);
> 171 + ratetbl = rcu_dereference_bh(sta->rates);
>
> Should ath12k also use rcu_dereference_bh()?
I think the ath9k and ath12k situations are different.
In ath9k, the rcu_dereference(sta->rates) is already inside the
spin_lock_bh(&sc->chan_lock) section, so BH is disabled and switching to
rcu_dereference_bh() directly satisfies lockdep without needing
rcu_read_lock().
In ath12k, narrowing the rcu_read_lock() scope would require changing the 4
existing rcu_dereference() calls inside ath12k_wifi7_mac_op_tx() to
rcu_dereference_bh(), since that function has an existing contract
(/* Note: called under rcu_read_lock() */) and is called from wake_tx_queue.
That is modifying working code beyond the scope of this series. Happy to do
it as a follow-up if you prefer.
Thanks
Best regards
José Ignacio