aboutsummaryrefslogtreecommitdiffstats
path: root/package/madwifi/patches/411-autochannel_multi.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2009-05-07 11:32:43 +0000
committerFelix Fietkau <nbd@openwrt.org>2009-05-07 11:32:43 +0000
commitb4574b5b03437da68522be96dcc28634d9f0f42a (patch)
treee49c543b8a2e0422647637b0bfb79e0a858606f8 /package/madwifi/patches/411-autochannel_multi.patch
parentb9c49af8a551c71b98228d0343a11e4402f174e0 (diff)
downloadupstream-b4574b5b03437da68522be96dcc28634d9f0f42a.tar.gz
upstream-b4574b5b03437da68522be96dcc28634d9f0f42a.tar.bz2
upstream-b4574b5b03437da68522be96dcc28634d9f0f42a.zip
madwifi: improve mode selection, do not scan channels which do not fit the desired mode
SVN-Revision: 15663
Diffstat (limited to 'package/madwifi/patches/411-autochannel_multi.patch')
-rw-r--r--package/madwifi/patches/411-autochannel_multi.patch16
1 files changed, 8 insertions, 8 deletions
diff --git a/package/madwifi/patches/411-autochannel_multi.patch b/package/madwifi/patches/411-autochannel_multi.patch
index ab48e70b2c..b6093cfcd5 100644
--- a/package/madwifi/patches/411-autochannel_multi.patch
+++ b/package/madwifi/patches/411-autochannel_multi.patch
@@ -278,7 +278,7 @@
/* update Supported Channels information element */
--- a/net80211/ieee80211_scan_ap.c
+++ b/net80211/ieee80211_scan_ap.c
-@@ -213,9 +213,15 @@ ap_start(struct ieee80211_scan_state *ss
+@@ -208,9 +208,15 @@ ap_start(struct ieee80211_scan_state *ss
struct ieee80211com *ic = NULL;
int i;
unsigned int mode = 0;
@@ -292,9 +292,9 @@
+ spin_unlock_irqrestore(&channel_lock, sflags);
+
/* Determine mode flags to match, or leave zero for auto mode */
- as->as_vap_desired_mode = vap->iv_des_mode;
- as->as_required_mode = 0;
-@@ -429,8 +435,10 @@ pc_cmp_idletime(struct ieee80211_channel
+ ss->ss_last = 0;
+ ieee80211_scan_add_channels(ic, ss, vap->iv_des_mode);
+@@ -423,8 +429,10 @@ pc_cmp_idletime(struct ieee80211_channel
if (!a->ic_idletime || !b->ic_idletime)
return 0;
@@ -307,7 +307,7 @@
}
-@@ -616,6 +624,7 @@ ap_end(struct ieee80211_scan_state *ss,
+@@ -605,6 +613,7 @@ ap_end(struct ieee80211_scan_state *ss,
struct ap_state *as = ss->ss_priv;
struct ieee80211_channel *bestchan = NULL;
struct ieee80211com *ic = NULL;
@@ -315,7 +315,7 @@
int res = 1;
SCAN_AP_LOCK_IRQ(as);
-@@ -624,8 +633,11 @@ ap_end(struct ieee80211_scan_state *ss,
+@@ -613,8 +622,11 @@ ap_end(struct ieee80211_scan_state *ss,
("wrong opmode %u", vap->iv_opmode));
ic = vap->iv_ic;
@@ -327,7 +327,7 @@
if (ss->ss_last > 0) {
/* no suitable channel, should not happen */
printk(KERN_ERR "%s: %s: no suitable channel! "
-@@ -644,6 +656,7 @@ ap_end(struct ieee80211_scan_state *ss,
+@@ -633,6 +645,7 @@ ap_end(struct ieee80211_scan_state *ss,
bestchan->ic_freq, bestchan->ic_flags &
~IEEE80211_CHAN_TURBO)) == NULL) {
/* should never happen ?? */
@@ -335,7 +335,7 @@
SCAN_AP_UNLOCK_IRQ_EARLY(as);
return 0;
}
-@@ -656,6 +669,9 @@ ap_end(struct ieee80211_scan_state *ss,
+@@ -645,6 +658,9 @@ ap_end(struct ieee80211_scan_state *ss,
as->as_action = action;
as->as_selbss = se;