summaryrefslogtreecommitdiffstats
path: root/net/mac80211/ibss.c
diff options
context:
space:
mode:
authorSujith <Sujith.Manoharan@atheros.com>2009-11-02 08:03:23 +0100
committerJohn W. Linville <linville@tuxdriver.com>2009-11-05 00:44:52 +0100
commit450aae3d7b60a970f266349a837dfb30a539198b (patch)
tree1d45c9bca4c34736eef9d9772edea798c9c66fa6 /net/mac80211/ibss.c
parentrt2x00: remove needless ifdefs from rt2x00leds.h (diff)
downloadlinux-450aae3d7b60a970f266349a837dfb30a539198b.tar.xz
linux-450aae3d7b60a970f266349a837dfb30a539198b.zip
mac80211: Fix IBSS merge
Currently, in IBSS mode, a single creator would go into a loop trying to merge/scan. This happens because the IBSS timer is rearmed on finishing a scan and the subsequent timer invocation requests another scan immediately. This patch fixes this issue by checking if we have just completed a scan run trying to merge with other IBSS networks. Signed-off-by: Sujith <Sujith.Manoharan@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/ibss.c')
-rw-r--r--net/mac80211/ibss.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index ca8ecce31d34..6ae288387a11 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -453,6 +453,10 @@ static void ieee80211_sta_merge_ibss(struct ieee80211_sub_if_data *sdata)
ieee80211_sta_expire(sdata, IEEE80211_IBSS_INACTIVITY_LIMIT);
+ if (time_before(jiffies, ifibss->last_scan_completed +
+ IEEE80211_IBSS_MERGE_INTERVAL))
+ return;
+
if (ieee80211_sta_active_ibss(sdata))
return;