Re: [PATCH ath-next v1] wifi: ath11k: Fix failure to connect to a 6 GHz AP

Baochen Qiang <[email protected]>
Newsgroups org.infradead.lists.ath11k,org.kernel.vger.linux-wireless
Message-ID <[email protected]>

On 1/7/2026 4:23 PM, Baochen Qiang wrote:
> 
> 
> On 1/7/2026 2:02 PM, Qian Zhang wrote:
>> STA fails to connect to a 6 GHz AP with the following errors:
>>  ath11k_pci 0000:01:00.0: failed to handle chan list with power type 1
>>  wlp1s0: deauthenticating from c8:a3:e8:dd:41:e3 by local choice (Reason: 3=DEAUTH_LEAVING)
>>
>> ath11k_reg_handle_chan_list() treats the update as redundant and
>> returns -EINVAL. That causes the connection attempt to fail.
>>
>> Avoid unnecessary validation during association. Apply the regulatory
>> redundant check only when the power type is IEEE80211_REG_UNSET_AP,
>> which only occurs during core initialization.
>>
>> Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41
>>
>> Signed-off-by: Qian Zhang <[email protected]>
>> ---
>>  drivers/net/wireless/ath/ath11k/reg.c | 9 ++++++---
>>  1 file changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath11k/reg.c b/drivers/net/wireless/ath/ath11k/reg.c
>> index d62a2014315a..8786ca3870fc 100644
>> --- a/drivers/net/wireless/ath/ath11k/reg.c
>> +++ b/drivers/net/wireless/ath/ath11k/reg.c
>> @@ -1,7 +1,7 @@
>>  // SPDX-License-Identifier: BSD-3-Clause-Clear
>>  /*
>>   * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
>> - * Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
>>   */
>>  #include <linux/rtnetlink.h>
>>  
>> @@ -926,8 +926,11 @@ int ath11k_reg_handle_chan_list(struct ath11k_base *ab,
>>  	 */
>>  	if (ab->default_regd[pdev_idx] && !ab->new_regd[pdev_idx] &&
>>  	    !memcmp((char *)ab->default_regd[pdev_idx]->alpha2,
>> -		    (char *)reg_info->alpha2, 2))
>> -		goto retfail;
>> +		    (char *)reg_info->alpha2, 2)) {
>> +		if (power_type == IEEE80211_REG_UNSET_AP)
>> +			ath11k_reg_reset_info(reg_info);
>> +		return 0;
>> +	}
>>  
>>  	/* Intersect new rules with default regd if a new country setting was
>>  	 * requested, i.e a default regd was already set during initialization
>>
>> base-commit: e33fc1c6d54ee1569a57255e11c2978ba9a42ffc
> 
> Reviewed-by: Baochen Qiang <[email protected]>

Withdraw my above tag as the code has some issues.

We should only return in IEEE80211_REG_UNSET_AP cases. For other types we should go on to
build a new regdomain.

>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.