mac80211: fix spurious RCU warning and update documentation
Document rx vs tx status concurrency requirements. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:

committed by
Johannes Berg

parent
3670946fe2
commit
f6b3d85f7f
@@ -688,8 +688,15 @@ int rate_control_set_rates(struct ieee80211_hw *hw,
|
||||
struct ieee80211_sta *pubsta,
|
||||
struct ieee80211_sta_rates *rates)
|
||||
{
|
||||
struct ieee80211_sta_rates *old = rcu_dereference(pubsta->rates);
|
||||
struct ieee80211_sta_rates *old;
|
||||
|
||||
/*
|
||||
* mac80211 guarantees that this function will not be called
|
||||
* concurrently, so the following RCU access is safe, even without
|
||||
* extra locking. This can not be checked easily, so we just set
|
||||
* the condition to true.
|
||||
*/
|
||||
old = rcu_dereference_protected(pubsta->rates, true);
|
||||
rcu_assign_pointer(pubsta->rates, rates);
|
||||
if (old)
|
||||
kfree_rcu(old, rcu_head);
|
||||
|
Reference in New Issue
Block a user