From: Felix Fietkau Date: Fri, 11 Mar 2011 20:45:51 +0000 (+0100) Subject: mac80211: fix channel type recalculation with HT and non-HT interfaces X-Git-Tag: v2.6.39-rc1~468^2~25^2^2~1 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=9db372fdd5de9e0464c77a9d3db2a3b356db8668;p=~shefty%2Frdma-dev.git mac80211: fix channel type recalculation with HT and non-HT interfaces When running an AP interface along with the cooked monitor interface created by hostapd, adding an interface and deleting it again triggers a channel type recalculation during which the (non-HT) monitor interface takes precedence over the HT AP interface, thus causing the channel type to be set to non-HT. Fix this by ensuring that a more wide channel type will not be overwritten by a less wide channel type. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville --- diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c index 5b24740fc0b..889c3e93e0f 100644 --- a/net/mac80211/chan.c +++ b/net/mac80211/chan.c @@ -77,6 +77,9 @@ bool ieee80211_set_channel_type(struct ieee80211_local *local, switch (tmp->vif.bss_conf.channel_type) { case NL80211_CHAN_NO_HT: case NL80211_CHAN_HT20: + if (superchan > tmp->vif.bss_conf.channel_type) + break; + superchan = tmp->vif.bss_conf.channel_type; break; case NL80211_CHAN_HT40PLUS: