summaryrefslogtreecommitdiffstats
path: root/queue-2.6.32/wireless-reset-beacon_found-while-updating-regulatory.patch
diff options
context:
space:
mode:
Diffstat (limited to 'queue-2.6.32/wireless-reset-beacon_found-while-updating-regulatory.patch')
-rw-r--r--queue-2.6.32/wireless-reset-beacon_found-while-updating-regulatory.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/queue-2.6.32/wireless-reset-beacon_found-while-updating-regulatory.patch b/queue-2.6.32/wireless-reset-beacon_found-while-updating-regulatory.patch
new file mode 100644
index 0000000..b1407a7
--- /dev/null
+++ b/queue-2.6.32/wireless-reset-beacon_found-while-updating-regulatory.patch
@@ -0,0 +1,39 @@
+From aa3d7eef398dd4f29045e9889b817d5161afe03e Mon Sep 17 00:00:00 2001
+From: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
+Date: Wed, 14 Sep 2011 14:28:17 +0530
+Subject: wireless: Reset beacon_found while updating regulatory
+
+From: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
+
+commit aa3d7eef398dd4f29045e9889b817d5161afe03e upstream.
+
+During the association, the regulatory is updated by country IE
+that reaps the previously found beacons. The impact is that
+after a STA disconnects *or* when for any reason a regulatory
+domain change happens the beacon hint flag is not cleared
+therefore preventing future beacon hints to be learned.
+This is important as a regulatory domain change or a restore
+of regulatory settings would set back the passive scan and no-ibss
+flags on the channel. This is the right place to do this given that
+it covers any regulatory domain change.
+
+Reviewed-by: Luis R. Rodriguez <mcgrof@gmail.com>
+Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
+Acked-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/wireless/reg.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/net/wireless/reg.c
++++ b/net/wireless/reg.c
+@@ -1023,6 +1023,7 @@ static void handle_channel(struct wiphy
+ return;
+ }
+
++ chan->beacon_found = false;
+ chan->flags = flags | bw_flags | map_regdom_flags(reg_rule->flags);
+ chan->max_antenna_gain = min(chan->orig_mag,
+ (int) MBI_TO_DBI(power_rule->max_antenna_gain));