32 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| 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
 | |
| @@ -599,10 +599,9 @@ ieee80211_ibss_merge(struct ieee80211_no
 | |
|  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);
 | |
|  }
 | |
|  
 | |
|  /*
 | |
| @@ -634,8 +633,8 @@ ieee80211_sta_join1(struct ieee80211_nod
 | |
|  	 * 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)
 | 
