diff mbox series

wifi: ath12k: fix legacy peer association due to missing HT or 6 GHz capabilities

Message ID 20240612225336.2303119-1-quic_pradeepc@quicinc.com (mailing list archive)
State Under Review
Delegated to: Kalle Valo
Headers show
Series wifi: ath12k: fix legacy peer association due to missing HT or 6 GHz capabilities | expand

Commit Message

Pradeep Kumar Chitrapu June 12, 2024, 10:53 p.m. UTC
Currently SMPS configuration failed when the Information
Elements (IEs) did not contain HT or 6 GHz capabilities. This
caused legacy peer association to fail as legacy peers do not
have HT or 6 GHz capabilities. Fix this by not returning an
error when SMPS configuration fails due to the absence of HT
or 6 GHz capabilities.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1

Fixes: f0e61dc7ecf9 ("wifi: ath12k: refactor SMPS configuration")
Reported-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
Reported-by: Zachary Smith <dr.z.smith@gmail.com>
Closes: https://lore.kernel.org/all/CAM=znoFPcXrn5GhDmDmo50Syic3-hXpWvD+vkv8KX5o_ZTo8kQ@mail.gmail.com/
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
---
 drivers/net/wireless/ath/ath12k/mac.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)


base-commit: e72048809ec7355a947415ae6836d2eb7fdcda39

Comments

Jeff Johnson June 13, 2024, 3:42 p.m. UTC | #1
On 6/12/2024 3:53 PM, Pradeep Kumar Chitrapu wrote:
> Currently SMPS configuration failed when the Information
> Elements (IEs) did not contain HT or 6 GHz capabilities. This
> caused legacy peer association to fail as legacy peers do not
> have HT or 6 GHz capabilities. Fix this by not returning an
> error when SMPS configuration fails due to the absence of HT
> or 6 GHz capabilities.
> 
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
> 
> Fixes: f0e61dc7ecf9 ("wifi: ath12k: refactor SMPS configuration")
> Reported-by: Aditya Kumar Singh <quic_adisi@quicinc.com>

Per checkpatch:
WARNING: Reported-by: should be immediately followed by Closes: with a URL to the report
#17: 
Reported-by: Aditya Kumar Singh <quic_adisi@quicinc.com>

Is there a separate public bug report from Aditya?

> Reported-by: Zachary Smith <dr.z.smith@gmail.com>
> Closes: https://lore.kernel.org/all/CAM=znoFPcXrn5GhDmDmo50Syic3-hXpWvD+vkv8KX5o_ZTo8kQ@mail.gmail.com/
> Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
> ---
>  drivers/net/wireless/ath/ath12k/mac.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
> index 2259ce22cc8b..fa9f6656a06f 100644
> --- a/drivers/net/wireless/ath/ath12k/mac.c
> +++ b/drivers/net/wireless/ath/ath12k/mac.c
> @@ -2255,9 +2255,6 @@ static int ath12k_get_smps_from_capa(const struct ieee80211_sta_ht_cap *ht_cap,
>  				     const struct ieee80211_he_6ghz_capa *he_6ghz_capa,
>  				     int *smps)
>  {
> -	if (!ht_cap->ht_supported && !he_6ghz_capa->capa)
> -		return -EOPNOTSUPP;
> -
>  	if (ht_cap->ht_supported)
>  		*smps = u16_get_bits(ht_cap->cap, IEEE80211_HT_CAP_SM_PS);
>  	else
> @@ -2277,6 +2274,9 @@ static void ath12k_peer_assoc_h_smps(struct ieee80211_sta *sta,
>  	const struct ieee80211_sta_ht_cap *ht_cap = &sta->deflink.ht_cap;
>  	int smps;
>  
> +	if (!ht_cap->ht_supported && !he_6ghz_capa->capa)
> +		return;
> +
>  	if (ath12k_get_smps_from_capa(ht_cap, he_6ghz_capa, &smps))
>  		return;
>  
> @@ -2756,6 +2756,9 @@ static int ath12k_setup_peer_smps(struct ath12k *ar, struct ath12k_vif *arvif,
>  {
>  	int smps, ret = 0;
>  
> +	if (!ht_cap->ht_supported && !he_6ghz_capa)
> +		return 0;
> +
>  	ret = ath12k_get_smps_from_capa(ht_cap, he_6ghz_capa, &smps);
>  	if (ret < 0)
>  		return ret;
> 
> base-commit: e72048809ec7355a947415ae6836d2eb7fdcda39
Pradeep Kumar Chitrapu June 13, 2024, 6:59 p.m. UTC | #2
On 6/13/2024 8:42 AM, Jeff Johnson wrote:
> On 6/12/2024 3:53 PM, Pradeep Kumar Chitrapu wrote:
>> Currently SMPS configuration failed when the Information
>> Elements (IEs) did not contain HT or 6 GHz capabilities. This
>> caused legacy peer association to fail as legacy peers do not
>> have HT or 6 GHz capabilities. Fix this by not returning an
>> error when SMPS configuration fails due to the absence of HT
>> or 6 GHz capabilities.
>>
>> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
>>
>> Fixes: f0e61dc7ecf9 ("wifi: ath12k: refactor SMPS configuration")
>> Reported-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
> 
> Per checkpatch:
> WARNING: Reported-by: should be immediately followed by Closes: with a URL to the report
> #17:
> Reported-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
> 
> Is there a separate public bug report from Aditya?
Hi Jeff,
No, this was internal report and does not have weblink associated with 
it. Also, do not want to ignore reportee.

Thanks
Pradeep
> 
>> Reported-by: Zachary Smith <dr.z.smith@gmail.com>
>> Closes: https://lore.kernel.org/all/CAM=znoFPcXrn5GhDmDmo50Syic3-hXpWvD+vkv8KX5o_ZTo8kQ@mail.gmail.com/
>> Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
>> ---
>>   drivers/net/wireless/ath/ath12k/mac.c | 9 ++++++---
>>   1 file changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
>> index 2259ce22cc8b..fa9f6656a06f 100644
>> --- a/drivers/net/wireless/ath/ath12k/mac.c
>> +++ b/drivers/net/wireless/ath/ath12k/mac.c
>> @@ -2255,9 +2255,6 @@ static int ath12k_get_smps_from_capa(const struct ieee80211_sta_ht_cap *ht_cap,
>>   				     const struct ieee80211_he_6ghz_capa *he_6ghz_capa,
>>   				     int *smps)
>>   {
>> -	if (!ht_cap->ht_supported && !he_6ghz_capa->capa)
>> -		return -EOPNOTSUPP;
>> -
>>   	if (ht_cap->ht_supported)
>>   		*smps = u16_get_bits(ht_cap->cap, IEEE80211_HT_CAP_SM_PS);
>>   	else
>> @@ -2277,6 +2274,9 @@ static void ath12k_peer_assoc_h_smps(struct ieee80211_sta *sta,
>>   	const struct ieee80211_sta_ht_cap *ht_cap = &sta->deflink.ht_cap;
>>   	int smps;
>>   
>> +	if (!ht_cap->ht_supported && !he_6ghz_capa->capa)
>> +		return;
>> +
>>   	if (ath12k_get_smps_from_capa(ht_cap, he_6ghz_capa, &smps))
>>   		return;
>>   
>> @@ -2756,6 +2756,9 @@ static int ath12k_setup_peer_smps(struct ath12k *ar, struct ath12k_vif *arvif,
>>   {
>>   	int smps, ret = 0;
>>   
>> +	if (!ht_cap->ht_supported && !he_6ghz_capa)
>> +		return 0;
>> +
>>   	ret = ath12k_get_smps_from_capa(ht_cap, he_6ghz_capa, &smps);
>>   	if (ret < 0)
>>   		return ret;
>>
>> base-commit: e72048809ec7355a947415ae6836d2eb7fdcda39
>
Jeff Johnson June 13, 2024, 10:15 p.m. UTC | #3
On 6/13/2024 11:59 AM, Pradeep Kumar Chitrapu wrote:
> 
> 
> On 6/13/2024 8:42 AM, Jeff Johnson wrote:
>> On 6/12/2024 3:53 PM, Pradeep Kumar Chitrapu wrote:
>>> Currently SMPS configuration failed when the Information
>>> Elements (IEs) did not contain HT or 6 GHz capabilities. This
>>> caused legacy peer association to fail as legacy peers do not
>>> have HT or 6 GHz capabilities. Fix this by not returning an
>>> error when SMPS configuration fails due to the absence of HT
>>> or 6 GHz capabilities.
>>>
>>> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
>>>
>>> Fixes: f0e61dc7ecf9 ("wifi: ath12k: refactor SMPS configuration")
>>> Reported-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
>>
>> Per checkpatch:
>> WARNING: Reported-by: should be immediately followed by Closes: with a URL to the report
>> #17:
>> Reported-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
>>
>> Is there a separate public bug report from Aditya?
> Hi Jeff,
> No, this was internal report and does not have weblink associated with 
> it. Also, do not want to ignore reportee.

I'm unsure what do do here since there is a requirement that an acknowledged
reporter have a public link to the bug report.

Note that normally internally reported issues are not acknowledged in this manner.
Kalle Valo June 17, 2024, 10:43 a.m. UTC | #4
Jeff Johnson <quic_jjohnson@quicinc.com> writes:

> On 6/13/2024 11:59 AM, Pradeep Kumar Chitrapu wrote:
>
>> 
>> 
>> On 6/13/2024 8:42 AM, Jeff Johnson wrote:
>>> On 6/12/2024 3:53 PM, Pradeep Kumar Chitrapu wrote:
>>>> Currently SMPS configuration failed when the Information
>>>> Elements (IEs) did not contain HT or 6 GHz capabilities. This
>>>> caused legacy peer association to fail as legacy peers do not
>>>> have HT or 6 GHz capabilities. Fix this by not returning an
>>>> error when SMPS configuration fails due to the absence of HT
>>>> or 6 GHz capabilities.
>>>>
>>>> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
>>>>
>>>> Fixes: f0e61dc7ecf9 ("wifi: ath12k: refactor SMPS configuration")
>>>> Reported-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
>>>
>>> Per checkpatch:
>>> WARNING: Reported-by: should be immediately followed by Closes:
>>> with a URL to the report
>>> #17:
>>> Reported-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
>>>
>>> Is there a separate public bug report from Aditya?
>> Hi Jeff,
>> No, this was internal report and does not have weblink associated with 
>> it. Also, do not want to ignore reportee.
>
> I'm unsure what do do here since there is a requirement that an acknowledged
> reporter have a public link to the bug report.

I think it's ok to ignore this checkpatch warning. Reported-by without a
closes tag should be fine.
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
index 2259ce22cc8b..fa9f6656a06f 100644
--- a/drivers/net/wireless/ath/ath12k/mac.c
+++ b/drivers/net/wireless/ath/ath12k/mac.c
@@ -2255,9 +2255,6 @@  static int ath12k_get_smps_from_capa(const struct ieee80211_sta_ht_cap *ht_cap,
 				     const struct ieee80211_he_6ghz_capa *he_6ghz_capa,
 				     int *smps)
 {
-	if (!ht_cap->ht_supported && !he_6ghz_capa->capa)
-		return -EOPNOTSUPP;
-
 	if (ht_cap->ht_supported)
 		*smps = u16_get_bits(ht_cap->cap, IEEE80211_HT_CAP_SM_PS);
 	else
@@ -2277,6 +2274,9 @@  static void ath12k_peer_assoc_h_smps(struct ieee80211_sta *sta,
 	const struct ieee80211_sta_ht_cap *ht_cap = &sta->deflink.ht_cap;
 	int smps;
 
+	if (!ht_cap->ht_supported && !he_6ghz_capa->capa)
+		return;
+
 	if (ath12k_get_smps_from_capa(ht_cap, he_6ghz_capa, &smps))
 		return;
 
@@ -2756,6 +2756,9 @@  static int ath12k_setup_peer_smps(struct ath12k *ar, struct ath12k_vif *arvif,
 {
 	int smps, ret = 0;
 
+	if (!ht_cap->ht_supported && !he_6ghz_capa)
+		return 0;
+
 	ret = ath12k_get_smps_from_capa(ht_cap, he_6ghz_capa, &smps);
 	if (ret < 0)
 		return ret;