P2P: Do not mark DFS channel as invalid if DFS is offloaded to driver
While considering the movement of P2P GO from its current operating channel, do not mark a DFS channel as invalid if DFS is offloaded to the driver. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
		
							parent
							
								
									58efbcbcd4
								
							
						
					
					
						commit
						c5aeb4343e
					
				
					 1 changed files with 6 additions and 2 deletions
				
			
		|  | @ -9073,16 +9073,20 @@ static void wpas_p2p_consider_moving_one_go(struct wpa_supplicant *wpa_s, | ||||||
| 	unsigned int i, invalid_freq = 0, policy_move = 0, flags = 0; | 	unsigned int i, invalid_freq = 0, policy_move = 0, flags = 0; | ||||||
| 	unsigned int timeout; | 	unsigned int timeout; | ||||||
| 	int freq; | 	int freq; | ||||||
|  | 	int dfs_offload; | ||||||
| 
 | 
 | ||||||
| 	wpas_p2p_go_update_common_freqs(wpa_s); | 	wpas_p2p_go_update_common_freqs(wpa_s); | ||||||
| 
 | 
 | ||||||
| 	freq = wpa_s->current_ssid->frequency; | 	freq = wpa_s->current_ssid->frequency; | ||||||
|  | 	dfs_offload = (wpa_s->drv_flags & WPA_DRIVER_FLAGS_DFS_OFFLOAD) && | ||||||
|  | 		ieee80211_is_dfs(freq); | ||||||
| 	for (i = 0, invalid_freq = 0; i < num; i++) { | 	for (i = 0, invalid_freq = 0; i < num; i++) { | ||||||
| 		if (freqs[i].freq == freq) { | 		if (freqs[i].freq == freq) { | ||||||
| 			flags = freqs[i].flags; | 			flags = freqs[i].flags; | ||||||
| 
 | 
 | ||||||
| 			/* The channel is invalid, must change it */ | 			/* The channel is invalid, must change it */ | ||||||
| 			if (!p2p_supported_freq_go(wpa_s->global->p2p, freq)) { | 			if (!p2p_supported_freq_go(wpa_s->global->p2p, freq) && | ||||||
|  | 			    !dfs_offload) { | ||||||
| 				wpa_dbg(wpa_s, MSG_DEBUG, | 				wpa_dbg(wpa_s, MSG_DEBUG, | ||||||
| 					"P2P: Freq=%d MHz no longer valid for GO", | 					"P2P: Freq=%d MHz no longer valid for GO", | ||||||
| 					freq); | 					freq); | ||||||
|  | @ -9092,7 +9096,7 @@ static void wpas_p2p_consider_moving_one_go(struct wpa_supplicant *wpa_s, | ||||||
| 			/* Freq is not used by any other station interface */ | 			/* Freq is not used by any other station interface */ | ||||||
| 			continue; | 			continue; | ||||||
| 		} else if (!p2p_supported_freq(wpa_s->global->p2p, | 		} else if (!p2p_supported_freq(wpa_s->global->p2p, | ||||||
| 					       freqs[i].freq)) { | 					       freqs[i].freq) && !dfs_offload) { | ||||||
| 			/* Freq is not valid for P2P use cases */ | 			/* Freq is not valid for P2P use cases */ | ||||||
| 			continue; | 			continue; | ||||||
| 		} else if (wpa_s->conf->p2p_go_freq_change_policy == | 		} else if (wpa_s->conf->p2p_go_freq_change_policy == | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Sunil Dutt
						Sunil Dutt