|
@@ -29,6 +29,7 @@
|
|
|
#define IEEE80211_IBSS_JOIN_TIMEOUT (7 * HZ)
|
|
|
|
|
|
#define IEEE80211_IBSS_MERGE_INTERVAL (30 * HZ)
|
|
|
+#define IEEE80211_IBSS_MERGE_DELAY 0x400000
|
|
|
#define IEEE80211_IBSS_INACTIVITY_LIMIT (60 * HZ)
|
|
|
|
|
|
#define IEEE80211_IBSS_MAX_STA_ENTRIES 128
|
|
@@ -336,6 +337,10 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,
|
|
|
jiffies);
|
|
|
#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) {
|
|
|
#ifdef CONFIG_MAC80211_IBSS_DEBUG
|
|
|
printk(KERN_DEBUG "%s: beacon TSF higher than "
|