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