staging: rtl8723au: rtw_update_ht_cap23a(): Use correct mask when determining 40MHz...
authorJes Sorensen <Jes.Sorensen@redhat.com>
Tue, 3 Jun 2014 21:41:22 +0000 (23:41 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Jun 2014 19:37:34 +0000 (12:37 -0700)
commit 4dc5f8bab2663b902b9cb0be29198dbbf38aa3fb
Author: Jes Sorensen <Jes.Sorensen@redhat.com>
Date:   Tue May 27 13:43:12 2014 +0200

    staging: rtl8723au: Eliminate struct HT_info_element

    Yet another duplicate version of struct ieee80211_ht_operation

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
introduced a bad error, applying the wrong value as the mask when
determining the location of the 40MHz channel, effectively making it
always determining it as not present. This caused hangs and delays
when running in 40MHz channel mode.

This should get it right.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8723au/core/rtw_mlme.c

index 99828863eed42c7095eb67def45d9c9a4840b204..76e1797c8f2b2c977e0bae75b9d61a2a94260d94 100644 (file)
@@ -2340,7 +2340,7 @@ void rtw_update_ht_cap23a(struct rtw_adapter *padapter, u8 *pie, uint ie_len)
                /* switch to the 40M Hz mode accoring to the AP */
                pmlmeext->cur_bwmode = HT_CHANNEL_WIDTH_40;
                switch (pmlmeinfo->HT_info.ht_param &
-                       IEEE80211_HT_PARAM_CHAN_WIDTH_ANY) {
+                       IEEE80211_HT_PARAM_CHA_SEC_OFFSET) {
                case IEEE80211_HT_PARAM_CHA_SEC_ABOVE:
                        pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_LOWER;
                        break;