mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 14:34:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
		
			974 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			974 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/net/mac80211/main.c
 | 
						|
+++ b/net/mac80211/main.c
 | 
						|
@@ -196,7 +196,9 @@ void ieee80211_bss_info_change_notify(st
 | 
						|
 				      u32 changed)
 | 
						|
 {
 | 
						|
 	struct ieee80211_local *local = sdata->local;
 | 
						|
+	struct ieee80211_supported_band *sband;
 | 
						|
 	static const u8 zero[ETH_ALEN] = { 0 };
 | 
						|
+	struct sta_info *sta;
 | 
						|
 
 | 
						|
 	if (!changed)
 | 
						|
 		return;
 | 
						|
@@ -226,6 +228,22 @@ void ieee80211_bss_info_change_notify(st
 | 
						|
 
 | 
						|
 	switch (sdata->vif.type) {
 | 
						|
 	case NL80211_IFTYPE_AP:
 | 
						|
+		if (!(changed & BSS_CHANGED_HT))
 | 
						|
+			break;
 | 
						|
+
 | 
						|
+		sband = local->hw.wiphy->bands[local->hw.conf.channel->band];
 | 
						|
+		rcu_read_lock();
 | 
						|
+		list_for_each_entry(sta, &local->sta_list, list) {
 | 
						|
+			if (sta->sdata != sdata &&
 | 
						|
+			    (!sdata->bss || sta->sdata->bss != sdata->bss))
 | 
						|
+				continue;
 | 
						|
+
 | 
						|
+			rate_control_rate_update(local, sband, sta,
 | 
						|
+				IEEE80211_RC_HT_CHANGED,
 | 
						|
+				local->_oper_channel_type);
 | 
						|
+		}
 | 
						|
+		rcu_read_unlock();
 | 
						|
+		break;
 | 
						|
 	case NL80211_IFTYPE_ADHOC:
 | 
						|
 	case NL80211_IFTYPE_WDS:
 | 
						|
 	case NL80211_IFTYPE_MESH_POINT:
 |