diff options
Diffstat (limited to 'package')
| -rw-r--r-- | package/madwifi/patches/462-fix_ap_scan.patch | 26 | 
1 files changed, 26 insertions, 0 deletions
| diff --git a/package/madwifi/patches/462-fix_ap_scan.patch b/package/madwifi/patches/462-fix_ap_scan.patch new file mode 100644 index 000000000..8a14f5b66 --- /dev/null +++ b/package/madwifi/patches/462-fix_ap_scan.patch @@ -0,0 +1,26 @@ +--- a/net80211/ieee80211_scan_ap.c ++++ b/net80211/ieee80211_scan_ap.c +@@ -595,6 +595,14 @@ ap_end(struct ieee80211_scan_state *ss,  +  + 	ic = vap->iv_ic; +  ++	/* if we're already running, switch back to the home channel */ ++	if ((vap->iv_state == IEEE80211_S_RUN) && ++	    (ic->ic_bsschan != IEEE80211_CHAN_ANYC)) { ++		ic->ic_curchan = ic->ic_bsschan; ++		ic->ic_set_channel(ic); ++		goto out; ++	} ++ + 	/* record stats for the channel that was scanned last */ + 	ic->ic_set_channel(ic); + 	spin_lock_irqsave(&channel_lock, sflags); +@@ -648,6 +656,8 @@ ap_end(struct ieee80211_scan_state *ss,  + 		IEEE80211_SCHEDULE_TQUEUE(&as->as_actiontq); + 		res = 1; + 	} ++ ++out: + 	SCAN_AP_UNLOCK_IRQ(as); + 	return res; + } | 
