Commit 3f524559 authored by Jonas Gorski's avatar Jonas Gorski Committed by John W. Linville

mwl8k: remove nonstandard rate 72 Mbps

This rate causes an overflow in the extended rates IE's data rate field,
with the overflowing bit setting the Basic Rate Set membership. This
results in a bogus 8 Mpbs basic rate, making clients checking them refuse
association.

Since the rate is likely unused anyway (HT will yield better rates between
supporting chips), we can just remove it.

This fixes association from wpa_supplicant and Android 4.x and newer.
Signed-off-by: default avatarJonas Gorski <jogo@openwrt.org>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 6475cb05
...@@ -193,10 +193,10 @@ struct mwl8k_priv { ...@@ -193,10 +193,10 @@ struct mwl8k_priv {
struct rxd_ops *rxd_ops; struct rxd_ops *rxd_ops;
struct ieee80211_supported_band band_24; struct ieee80211_supported_band band_24;
struct ieee80211_channel channels_24[14]; struct ieee80211_channel channels_24[14];
struct ieee80211_rate rates_24[14]; struct ieee80211_rate rates_24[13];
struct ieee80211_supported_band band_50; struct ieee80211_supported_band band_50;
struct ieee80211_channel channels_50[4]; struct ieee80211_channel channels_50[4];
struct ieee80211_rate rates_50[9]; struct ieee80211_rate rates_50[8];
u32 ap_macids_supported; u32 ap_macids_supported;
u32 sta_macids_supported; u32 sta_macids_supported;
...@@ -366,7 +366,6 @@ static const struct ieee80211_rate mwl8k_rates_24[] = { ...@@ -366,7 +366,6 @@ static const struct ieee80211_rate mwl8k_rates_24[] = {
{ .bitrate = 360, .hw_value = 72, }, { .bitrate = 360, .hw_value = 72, },
{ .bitrate = 480, .hw_value = 96, }, { .bitrate = 480, .hw_value = 96, },
{ .bitrate = 540, .hw_value = 108, }, { .bitrate = 540, .hw_value = 108, },
{ .bitrate = 720, .hw_value = 144, },
}; };
static const struct ieee80211_channel mwl8k_channels_50[] = { static const struct ieee80211_channel mwl8k_channels_50[] = {
...@@ -385,7 +384,6 @@ static const struct ieee80211_rate mwl8k_rates_50[] = { ...@@ -385,7 +384,6 @@ static const struct ieee80211_rate mwl8k_rates_50[] = {
{ .bitrate = 360, .hw_value = 72, }, { .bitrate = 360, .hw_value = 72, },
{ .bitrate = 480, .hw_value = 96, }, { .bitrate = 480, .hw_value = 96, },
{ .bitrate = 540, .hw_value = 108, }, { .bitrate = 540, .hw_value = 108, },
{ .bitrate = 720, .hw_value = 144, },
}; };
/* Set or get info from Firmware */ /* Set or get info from Firmware */
...@@ -3083,11 +3081,11 @@ static void legacy_rate_mask_to_array(u8 *rates, u32 mask) ...@@ -3083,11 +3081,11 @@ static void legacy_rate_mask_to_array(u8 *rates, u32 mask)
int j; int j;
/* /*
* Clear nonstandard rates 4 and 13. * Clear nonstandard rate 4.
*/ */
mask &= 0x1fef; mask &= 0x1fef;
for (i = 0, j = 0; i < 14; i++) { for (i = 0, j = 0; i < 13; i++) {
if (mask & (1 << i)) if (mask & (1 << i))
rates[j++] = mwl8k_rates_24[i].hw_value; rates[j++] = mwl8k_rates_24[i].hw_value;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment