On Thu, 4 May 2006 22:32:35 -0400, Michael Wu wrote:
> This makes the current hack used to prevent 802.11g cards from scanning with
> 802.11b channels not break scanning in 802.11b drivers.
I think this should be better:
Signed-off-by: Jiri Benc <[EMAIL PROTECTED]>
---
net/d80211/ieee80211.c | 14 ++++++++++++++
net/d80211/ieee80211_sta.c | 1 -
2 files changed, 14 insertions(+), 1 deletion(-)
--- dscape.orig/net/d80211/ieee80211.c
+++ dscape/net/d80211/ieee80211.c
@@ -4014,6 +4014,19 @@ static void ieee80211_precalc_rates(stru
}
}
+static inline void ieee80211_apply_modes(struct ieee80211_hw *hw,
+ struct ieee80211_local *local)
+{
+ struct ieee80211_hw_modes *mode;
+ int i;
+
+ local->scan_skip_11b = 0;
+ for (i = 0; i < hw->num_modes; i++) {
+ mode = &hw->modes[i];
+ if (mode->mode == MODE_IEEE80211G)
+ local->scan_skip_11b = 1;
+ }
+}
struct net_device *ieee80211_alloc_hw(size_t priv_data_len,
void (*setup)(struct net_device *))
@@ -4258,6 +4271,7 @@ int ieee80211_update_hw(struct net_devic
return -1;
ieee80211_precalc_rates(hw);
+ ieee80211_apply_modes(hw, local);
local->conf.phymode = hw->modes[0].mode;
local->curr_rates = hw->modes[0].rates;
local->num_curr_rates = hw->modes[0].num_rates;
--- dscape.orig/net/d80211/ieee80211_sta.c
+++ dscape/net/d80211/ieee80211_sta.c
@@ -2566,7 +2566,6 @@ int ieee80211_sta_req_scan(struct net_de
memcpy(local->scan_ssid, ssid, ssid_len);
} else
local->scan_ssid_len = 0;
- local->scan_skip_11b = 1; /* FIX: clear this is 11g is not supported */
local->scan_state = SCAN_SET_CHANNEL;
local->scan_hw_mode_idx = 0;
local->scan_channel_idx = 0;
--
Jiri Benc
SUSE Labs
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html