actaully we dont even need local->conf.channel. rx_status->channel holds
the channel
we physically received the frame on. channel hold the value from ds. if
they are not equal then
adjust freq. Attached is the modified patch
Signed-off-by: Mohamed Abbas <[EMAIL PROTECTED]>
diff --git a/net/d80211/ieee80211_sta.c b/net/d80211/ieee80211_sta.c
index a933d92..a0746b9 100644
--- a/net/d80211/ieee80211_sta.c
+++ b/net/d80211/ieee80211_sta.c
@@ -1539,12 +1539,12 @@ #endif
}
- bss->hw_mode = local->conf.phymode;
+ bss->hw_mode = rx_status->phymode;
bss->channel = channel;
- bss->freq = local->conf.freq;
- if (channel != local->conf.channel &&
- (local->conf.phymode == MODE_IEEE80211G ||
- local->conf.phymode == MODE_IEEE80211B) &&
+ bss->freq = rx_status->freq;
+ if (channel != rx_status->channel &&
+ (bss->hw_mode == MODE_IEEE80211G ||
+ bss->hw_mode == MODE_IEEE80211B) &&
channel >= 1 && channel <= 14) {
static const int freq_list[] = {
2412, 2417, 2422, 2427, 2432, 2437, 2442,