aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ibss.c
diff options
context:
space:
mode:
authorAlina Friedrichsen <x-alina@gmx.net>2009-02-22 12:19:33 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-02-27 14:53:03 -0500
commit4a332a385a86e31bfe181d969a8cb5579798fe03 (patch)
tree52608f9c9b1de70004acddacc7d359b1cd98b9a0 /net/mac80211/ibss.c
parent34e8f08231388f9e16c6f1e2461f53afaf7f1e5e (diff)
mac80211: Give it some time to do the TSF sync
Give slow hardware some time to do the TSF sync, to not run into an IBSS merging endless loop in some rarely situations. Signed-off-by: Alina Friedrichsen <x-alina@gmx.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/ibss.c')
-rw-r--r--net/mac80211/ibss.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index 7a944ca1c840..a96ce9dfc6b5 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -29,6 +29,7 @@
29#define IEEE80211_IBSS_JOIN_TIMEOUT (7 * HZ) 29#define IEEE80211_IBSS_JOIN_TIMEOUT (7 * HZ)
30 30
31#define IEEE80211_IBSS_MERGE_INTERVAL (30 * HZ) 31#define IEEE80211_IBSS_MERGE_INTERVAL (30 * HZ)
32#define IEEE80211_IBSS_MERGE_DELAY 0x400000
32#define IEEE80211_IBSS_INACTIVITY_LIMIT (60 * HZ) 33#define IEEE80211_IBSS_INACTIVITY_LIMIT (60 * HZ)
33 34
34#define IEEE80211_IBSS_MAX_STA_ENTRIES 128 35#define IEEE80211_IBSS_MAX_STA_ENTRIES 128
@@ -336,6 +337,10 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,
336 jiffies); 337 jiffies);
337#endif 338#endif
338 339
340 /* give slow hardware some time to do the TSF sync */
341 if (rx_timestamp < IEEE80211_IBSS_MERGE_DELAY)
342 goto put_bss;
343
339 if (beacon_timestamp > rx_timestamp) { 344 if (beacon_timestamp > rx_timestamp) {
340#ifdef CONFIG_MAC80211_IBSS_DEBUG 345#ifdef CONFIG_MAC80211_IBSS_DEBUG
341 printk(KERN_DEBUG "%s: beacon TSF higher than " 346 printk(KERN_DEBUG "%s: beacon TSF higher than "