mac80211: Don't merge with the same BSSID
authorAlina Friedrichsen <x-alina@gmx.net>
Sat, 21 Feb 2009 23:07:28 +0000 (00:07 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 27 Feb 2009 19:53:02 +0000 (14:53 -0500)
It was not a good idea to do a TSF reset on strange IBSS merges to the same BSSID. For example it will break the TSF sync of ath9k completely and it is unnecessary as all hardware I have tested do a TSF sync to a higher value automatically and IBSS merges are only done to higher TSF values. It only need a TSF reset to accept a lower value, when the IBSS network is changed manually.

Signed-off-by: Alina Friedrichsen <x-alina@gmx.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/ibss.c

index aa8937c56285917893750d6a50d90b1eafeeffcb..7a944ca1c840ad80b1334e000aaa91fe81998997 100644 (file)
@@ -291,6 +291,10 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,
                                sdata->u.ibss.ssid_len))
                goto put_bss;
 
+       /* same BSSID */
+       if (memcmp(bss->cbss.bssid, sdata->u.ibss.bssid, ETH_ALEN) == 0)
+               goto put_bss;
+
        if (rx_status->flag & RX_FLAG_TSFT) {
                /*
                 * For correct IBSS merging we need mactime; since mactime is