[RFC] mac80211: fix rx_nss calculation for drivers with hw rc

Michal Kazior michal.kazior at tieto.com
Mon Dec 2 05:54:07 EST 2013

Drivers with hardware rate control were given
sta->rx_nss set to 0. This was because rx_nss
calculation procedure was protected by hw/sw rate
control check.

Signed-off-by: Michal Kazior <michal.kazior at tieto.com>
Hi Johannes,

I've re-checked the issue I've mentioned with the patch 'ath10k: use nss
provided by mac80211'.

Apparently drivers with HW rate control are only affected by this bug
and this patch is what I came up with as a quick fix. Any comments?

 net/mac80211/rate.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/mac80211/rate.h b/net/mac80211/rate.h
index 5dedc56..32cdbd2 100644
--- a/net/mac80211/rate.h
+++ b/net/mac80211/rate.h
@@ -54,6 +54,8 @@ static inline void rate_control_rate_init(struct sta_info *sta)
 	struct ieee80211_supported_band *sband;
 	struct ieee80211_chanctx_conf *chanctx_conf;
+	ieee80211_sta_set_rx_nss(sta);
 	if (!ref)
@@ -67,8 +69,6 @@ static inline void rate_control_rate_init(struct sta_info *sta)
 	sband = local->hw.wiphy->bands[chanctx_conf->def.chan->band];
-	ieee80211_sta_set_rx_nss(sta);
 	ref->ops->rate_init(ref->priv, sband, &chanctx_conf->def, ista,

More information about the ath10k mailing list