summaryrefslogtreecommitdiff
path: root/package/madwifi/patches-r3776/324-reassoc.patch
blob: 7d1ade3dd7a42d8734085c99ba45cfe03044ff36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Add a preliminary fix for the reassoc check, but disable reassoc entirely for now
until we've figured out why it fails frequently.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

--- a/net80211/ieee80211_node.c
+++ b/net80211/ieee80211_node.c
@@ -561,10 +561,9 @@
 EXPORT_SYMBOL(ieee80211_ibss_merge);
 
 static __inline int
-ssid_equal(const struct ieee80211_node *a, const struct ieee80211_node *b)
+bssid_equal(const struct ieee80211_node *a, const struct ieee80211_node *b)
 {
-	return (a->ni_esslen == b->ni_esslen &&
-		memcmp(a->ni_essid, b->ni_essid, a->ni_esslen) == 0);
+	return (memcmp(a->ni_bssid, b->ni_bssid, IEEE80211_ADDR_LEN) == 0);
 }
 
 /*
@@ -596,8 +595,8 @@
 	 * Check if old+new node have the same ssid in which
 	 * case we can reassociate when operating in sta mode.
 	 */
-	canreassoc = ((obss != NULL) &&
-		(vap->iv_state == IEEE80211_S_RUN) && ssid_equal(obss, selbs));
+	canreassoc = 0; /* ((obss != NULL) &&
+		(vap->iv_state == IEEE80211_S_RUN) && bssid_equal(obss, selbs)); */
 	vap->iv_bss = selbs;
 	IEEE80211_ADDR_COPY(vap->iv_bssid, selbs->ni_bssid);
 	if (obss != NULL)