]> www.infradead.org Git - users/jedix/linux-maple.git/commit
wifi: ath11k: fix RCU documentation in ath11k_mac_op_ipv6_changed()
authorBaochen Qiang <quic_bqiang@quicinc.com>
Tue, 11 Jun 2024 06:42:33 +0000 (09:42 +0300)
committerKalle Valo <quic_kvalo@quicinc.com>
Tue, 11 Jun 2024 18:36:57 +0000 (21:36 +0300)
commit53d7c99719e29819eaeb9f373d262a6b56ea7cce
treed89054edb35e3faa69e3102afe946dbdfa8c3059
parent8b2a12749b08726f006303814ecc1c37024d3617
wifi: ath11k: fix RCU documentation in ath11k_mac_op_ipv6_changed()

Current documentation on RCU in ath11k_mac_op_ipv6_changed() says:

/* Note: read_lock_bh() calls rcu_read_lock() */
read_lock_bh(&idev->lock);

This is wrong because without enabling CONFIG_PREEMPT_RT
rcu_read_lock() is not called by read_lock_bh(). The reason
why current code works even in a CONFIG_PREEMPT_RT=n kernel
is because atomic_notifier_call_chain() already does that for
us, see:

int atomic_notifier_call_chain()
{
...
rcu_read_lock();
ret = notifier_call_chain(&nh->head, val, v, -1, NULL);
rcu_read_unlock();
...
}

and backtrace:

ath11k_mac_op_ipv6_changed
ieee80211_ifa6_changed
notifier_call_chain
atomic_notifier_call_chain

So update the comment to make it correct.

This is found during code review, compile tested only.

Fixes: feafe59c8975 ("wifi: ath11k: use RCU when accessing struct inet6_dev::ac_list")
Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://msgid.link/20240531022411.6543-1-quic_bqiang@quicinc.com
drivers/net/wireless/ath/ath11k/mac.c