aboutsummaryrefslogtreecommitdiffstats
path: root/package/madwifi/patches/411-autochannel_multi.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2009-05-07 21:00:35 +0000
committerFelix Fietkau <nbd@openwrt.org>2009-05-07 21:00:35 +0000
commita8a91697ce4c8f9d1e701b52356f69702741d5cd (patch)
tree70c15d4591a6a9596ffb1c3d4e2e2140265e4709 /package/madwifi/patches/411-autochannel_multi.patch
parent3dea7e450fa43f07f76ca9fc6b1b0e51fa1af5fd (diff)
downloadupstream-a8a91697ce4c8f9d1e701b52356f69702741d5cd.tar.gz
upstream-a8a91697ce4c8f9d1e701b52356f69702741d5cd.tar.bz2
upstream-a8a91697ce4c8f9d1e701b52356f69702741d5cd.zip
madwifi: improve autochannel, nuke some dead code, fix scanlist building from channel mode
SVN-Revision: 15702
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 b6093cfcd5..827ab5800a 100644
--- a/package/madwifi/patches/411-autochannel_multi.patch
+++ b/package/madwifi/patches/411-autochannel_multi.patch
@@ -124,7 +124,7 @@
void
ieee80211_scan_attach(struct ieee80211com *ic)
{
-@@ -1155,7 +1272,7 @@ ieee80211_scan_dfs_action(struct ieee802
+@@ -1168,7 +1285,7 @@ ieee80211_scan_dfs_action(struct ieee802
IEEE80211_RADAR_CHANCHANGE_TBTT_COUNT;
ic->ic_flags |= IEEE80211_F_CHANSWITCH;
} else {
@@ -133,7 +133,7 @@
IEEE80211_DPRINTF(vap, IEEE80211_MSG_DOTH,
"%s: directly switching to channel "
"%3d (%4d MHz)\n", __func__,
-@@ -1166,6 +1283,9 @@ ieee80211_scan_dfs_action(struct ieee802
+@@ -1179,6 +1296,9 @@ ieee80211_scan_dfs_action(struct ieee802
* change the channel here. */
change_channel(ic, new_channel);
ic->ic_bsschan = new_channel;
@@ -307,7 +307,7 @@
}
-@@ -605,6 +613,7 @@ ap_end(struct ieee80211_scan_state *ss,
+@@ -575,6 +583,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,10 +315,10 @@
int res = 1;
SCAN_AP_LOCK_IRQ(as);
-@@ -613,8 +622,11 @@ ap_end(struct ieee80211_scan_state *ss,
- ("wrong opmode %u", vap->iv_opmode));
+@@ -586,8 +595,11 @@ ap_end(struct ieee80211_scan_state *ss,
- ic = vap->iv_ic;
+ /* record stats for the channel that was scanned last */
+ ic->ic_set_channel(ic);
+ spin_lock_irqsave(&channel_lock, sflags);
+ ieee80211_scan_set_bss_channel(ic, NULL);
bestchan = pick_channel(ss, vap, flags);
@@ -327,7 +327,7 @@
if (ss->ss_last > 0) {
/* no suitable channel, should not happen */
printk(KERN_ERR "%s: %s: no suitable channel! "
-@@ -633,6 +645,7 @@ ap_end(struct ieee80211_scan_state *ss,
+@@ -606,6 +618,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;
}
-@@ -645,6 +658,9 @@ ap_end(struct ieee80211_scan_state *ss,
+@@ -618,6 +631,9 @@ ap_end(struct ieee80211_scan_state *ss,
as->as_action = action;
as->as_selbss = se;