Commit 4a332a38 authored by Alina Friedrichsen's avatar Alina Friedrichsen Committed by John W. Linville

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: default avatarAlina Friedrichsen <x-alina@gmx.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 34e8f082
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#define IEEE80211_IBSS_JOIN_TIMEOUT (7 * HZ) #define IEEE80211_IBSS_JOIN_TIMEOUT (7 * HZ)
#define IEEE80211_IBSS_MERGE_INTERVAL (30 * HZ) #define IEEE80211_IBSS_MERGE_INTERVAL (30 * HZ)
#define IEEE80211_IBSS_MERGE_DELAY 0x400000
#define IEEE80211_IBSS_INACTIVITY_LIMIT (60 * HZ) #define IEEE80211_IBSS_INACTIVITY_LIMIT (60 * HZ)
#define IEEE80211_IBSS_MAX_STA_ENTRIES 128 #define IEEE80211_IBSS_MAX_STA_ENTRIES 128
...@@ -336,6 +337,10 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata, ...@@ -336,6 +337,10 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,
jiffies); jiffies);
#endif #endif
/* give slow hardware some time to do the TSF sync */
if (rx_timestamp < IEEE80211_IBSS_MERGE_DELAY)
goto put_bss;
if (beacon_timestamp > rx_timestamp) { if (beacon_timestamp > rx_timestamp) {
#ifdef CONFIG_MAC80211_IBSS_DEBUG #ifdef CONFIG_MAC80211_IBSS_DEBUG
printk(KERN_DEBUG "%s: beacon TSF higher than " printk(KERN_DEBUG "%s: beacon TSF higher than "
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment