minstrel_ht: fix freeze with legacy hardware
PATCH 1/1 minstrel_ht: fix freeze with legacy hardware
Ever since minstrel_ht was prompted to be the default RC, I had an this odd freeze in ieee80211_tx_status, whenever I tried to connect my p54*(legacy 11abg) to a 802.11n network.
Apparently, minstrel_ht was not interested if the hardware supported 802.11n or not?
---
Note: There's another possible way to fix this. We can simply AND sta's ht_supported bool with the setting in sband's ht_supported.
The advantage is that we won't need this patch and the procedure would "match" to what we did with the ht_cap flags.
This is up for debate... But in the meantime,
here's a fix.
P.S.: is there a valid operation situation
where sta is be NULL, but priv_sta isn't?
---
net/mac80211/rc80211_minstrel_ht.c +6 -2
@@ -635,8 +635,12 @@ minstrel_ht_update_caps(void *priv, struct ieee80211_supported_band *sband,int stbc;int i; -/* fall back to the old minstrel for legacy stations */ -if (sta && !sta->ht_cap.ht_supported) { +/* +* fall back to the old minstrel for legacy stations, +* or on legacy hardware. +*/ +if ((sta && !sta->ht_cap.ht_supported) || + !sband->ht_cap.ht_supported) { msp->is_ht = false;memset (&msp->legacy,0 ,sizeof (msp->legacy)); msp->legacy.r = msp->ratelist;
Quoted 18 lines · Christian Lamparter
Ever since
minstrel_htwas prompted to be the default RC, I had an this odd freeze inieee80211_tx_status, whenever I tried to connect my p54*(legacy 11abg) to a 802.11n network.Apparently,
minstrel_htwas not interested if the hardware supported 802.11n or not?Signed-off-by Christian Lamparter <[email protected]>---
Note: There's another possible way to fix this. We can simply AND sta'sht_supportedbool with the setting in sband'sht_supported.The advantage is that we won't need this patch and the procedure would "match" to what we did with the
ht_capflags.
Quoted 5 lines
This is up for debate... But in the meantime,
here's a fix.
P.S.: is there a valid operation situation
where sta is be NULL, butpriv_staisn't?
Either of those two options is OK with me. I would prefer masking it in mac80211 though, since the sta ht setting are already partially masked by hw capabilities.
- Felix
PATCH 1/1 mac80211: skip HT parsing if HW does not support HT
This patch will also fix the odd freeze which occurred when minstrel_ht connects to an 802.11n network with legacy hardware.
---
John,
As you know Felix has favored the alternative. Therefore, can you please ignore
[PATCH] minstrel_ht: fix freeze with legacy hardware and use this one instead?
Regards,
Chr
---
net/mac80211/ht.c +1 -1
@@ -29,7 +29,7 @@ void ieee80211_ht_cap_ie_to_sta_ht_cap(struct ieee80211_supported_band *sband,memset (ht_cap,0 ,sizeof (*ht_cap)); -if (!ht_cap_ie) +if (!ht_cap_ie || !sband->ht_cap.ht_supported)return ; ht_cap->ht_supported = true;