diff options
author | Johannes Berg <johannes.berg@intel.com> | 2022-06-01 15:16:00 +0300 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2022-06-20 13:55:38 +0300 |
commit | e5c0ee01fedf2df42426ac4b3c45b4c5cd49de4a (patch) | |
tree | 27999aa42efc69dfc8860d4cbb21d8fddcc24f6f /net/mac80211/rate.c | |
parent | 37a7d0dae3111c431b81959ca13cf5effdf9e929 (diff) | |
download | linux-e5c0ee01fedf2df42426ac4b3c45b4c5cd49de4a.tar.xz |
wifi: mac80211: status: look up band only where needed
For MLD, we might eventually not really know the band on status,
but some code assumes it's there. Move the sband lookup deep to
the code that actually needs it, to make it clear where exactly
it's needed and for what purposes.
For rate control, at least initially we won't support it in MLO,
so that won't be an issue.
For TX monitoring, we may have to elide the rate and/or rely on
ieee80211_tx_status_ext() for rate information.
This also simplifies the function prototypes.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/rate.c')
-rw-r--r-- | net/mac80211/rate.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c index 402e898b75c3..c58d9689f51f 100644 --- a/net/mac80211/rate.c +++ b/net/mac80211/rate.c @@ -68,16 +68,18 @@ void rate_control_rate_init(struct sta_info *sta) } void rate_control_tx_status(struct ieee80211_local *local, - struct ieee80211_supported_band *sband, struct ieee80211_tx_status *st) { struct rate_control_ref *ref = local->rate_ctrl; struct sta_info *sta = container_of(st->sta, struct sta_info, sta); void *priv_sta = sta->rate_ctrl_priv; + struct ieee80211_supported_band *sband; if (!ref || !test_sta_flag(sta, WLAN_STA_RATE_CONTROL)) return; + sband = local->hw.wiphy->bands[st->info->band]; + spin_lock_bh(&sta->rate_ctrl_lock); if (ref->ops->tx_status_ext) ref->ops->tx_status_ext(ref->priv, sband, priv_sta, st); |