diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c index 5408b5379a4..a9415ca784a 100644 --- a/drivers/net/wireless/iwlwifi/iwl4965-base.c +++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c | |||
@@ -1833,7 +1833,7 @@ static u16 iwl_fill_probe_req(struct iwl_priv *priv, | |||
1833 | { | 1833 | { |
1834 | int len = 0; | 1834 | int len = 0; |
1835 | u8 *pos = NULL; | 1835 | u8 *pos = NULL; |
1836 | u16 active_rates, ret_rates, cck_rates; | 1836 | u16 active_rates, ret_rates, cck_rates, active_rate_basic; |
1837 | 1837 | ||
1838 | /* Make sure there is enough space for the probe request, | 1838 | /* Make sure there is enough space for the probe request, |
1839 | * two mandatory IEs and the data */ | 1839 | * two mandatory IEs and the data */ |
@@ -1883,17 +1883,19 @@ static u16 iwl_fill_probe_req(struct iwl_priv *priv, | |||
1883 | *pos++ = WLAN_EID_SUPP_RATES; | 1883 | *pos++ = WLAN_EID_SUPP_RATES; |
1884 | *pos = 0; | 1884 | *pos = 0; |
1885 | 1885 | ||
1886 | priv->active_rate = priv->rates_mask; | 1886 | /* exclude 60M rate */ |
1887 | active_rates = priv->active_rate; | 1887 | active_rates = priv->rates_mask; |
1888 | priv->active_rate_basic = priv->rates_mask & IWL_BASIC_RATES_MASK; | 1888 | active_rates &= ~IWL_RATE_60M_MASK; |
1889 | |||
1890 | active_rate_basic = active_rates & IWL_BASIC_RATES_MASK; | ||
1889 | 1891 | ||
1890 | cck_rates = IWL_CCK_RATES_MASK & active_rates; | 1892 | cck_rates = IWL_CCK_RATES_MASK & active_rates; |
1891 | ret_rates = iwl_supported_rate_to_ie(pos, cck_rates, | 1893 | ret_rates = iwl_supported_rate_to_ie(pos, cck_rates, |
1892 | priv->active_rate_basic, &left); | 1894 | active_rate_basic, &left); |
1893 | active_rates &= ~ret_rates; | 1895 | active_rates &= ~ret_rates; |
1894 | 1896 | ||
1895 | ret_rates = iwl_supported_rate_to_ie(pos, active_rates, | 1897 | ret_rates = iwl_supported_rate_to_ie(pos, active_rates, |
1896 | priv->active_rate_basic, &left); | 1898 | active_rate_basic, &left); |
1897 | active_rates &= ~ret_rates; | 1899 | active_rates &= ~ret_rates; |
1898 | 1900 | ||
1899 | len += 2 + *pos; | 1901 | len += 2 + *pos; |
@@ -1910,7 +1912,7 @@ static u16 iwl_fill_probe_req(struct iwl_priv *priv, | |||
1910 | *pos++ = WLAN_EID_EXT_SUPP_RATES; | 1912 | *pos++ = WLAN_EID_EXT_SUPP_RATES; |
1911 | *pos = 0; | 1913 | *pos = 0; |
1912 | iwl_supported_rate_to_ie(pos, active_rates, | 1914 | iwl_supported_rate_to_ie(pos, active_rates, |
1913 | priv->active_rate_basic, &left); | 1915 | active_rate_basic, &left); |
1914 | if (*pos > 0) | 1916 | if (*pos > 0) |
1915 | len += 2 + *pos; | 1917 | len += 2 + *pos; |
1916 | 1918 | ||