On Tue, Apr 07, 2009 at 03:11:11AM -0700, Johannes Berg wrote: > On Mon, 2009-04-06 at 16:15 -0400, Luis R. Rodriguez wrote: > > We weren't checking this at all. > > > > Signed-off-by: Luis R. Rodriguez <lrodriguez@xxxxxxxxxxx> > > --- > > net/mac80211/ht.c | 8 ++++++-- > > 1 files changed, 6 insertions(+), 2 deletions(-) > > > > diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c > > index 4e3c72f..967367c 100644 > > --- a/net/mac80211/ht.c > > +++ b/net/mac80211/ht.c > > @@ -122,10 +122,14 @@ u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata, > > (hti->ht_param & IEEE80211_HT_PARAM_CHAN_WIDTH_ANY)) { > > switch(hti->ht_param & IEEE80211_HT_PARAM_CHA_SEC_OFFSET) { > > case IEEE80211_HT_PARAM_CHA_SEC_ABOVE: > > - channel_type = NL80211_CHAN_HT40PLUS; > > + if (!(local->hw.conf.channel->flags & > > + IEEE80211_CHAN_NO_HT40PLUS)) > > + channel_type = NL80211_CHAN_HT40PLUS; > > This patch is not sufficient -- you also need to modify > ieee80211_send_assoc. Otherwise we end up telling the AP that we support > HT40, but tuning the hardware to HT20. Like this? switch (ht_info->ht_param & IEEE80211_HT_PARAM_CHA_SEC_OFFSET) { case IEEE80211_HT_PARAM_CHA_SEC_ABOVE: if (flags & IEEE80211_CHAN_NO_HT40PLUS) { cap &= ~IEEE80211_HT_CAP_SUP_WIDTH_20_40; cap &= ~IEEE80211_HT_CAP_SGI_40; } break; case IEEE80211_HT_PARAM_CHA_SEC_BELOW: if (flags & IEEE80211_CHAN_NO_HT40MINUS) { cap &= ~IEEE80211_HT_CAP_SUP_WIDTH_20_40; cap &= ~IEEE80211_HT_CAP_SGI_40; } Luis -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html