linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3] ath10k: Fix the parsing error in service available event
@ 2020-11-16  4:34 Rakesh Pillai
  2020-11-19  0:20 ` Abhishek Kumar
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Rakesh Pillai @ 2020-11-16  4:34 UTC (permalink / raw)
  To: ath10k
  Cc: linux-wireless, linux-kernel, kuabhs, dianders, briannorris,
	Rakesh Pillai

The wmi service available event has been
extended to contain extra 128 bit for new services
to be indicated by firmware.

Currently the presence of any optional TLVs in
the wmi service available event leads to a parsing
error with the below error message:
ath10k_snoc 18800000.wifi: failed to parse svc_avail tlv: -71

The wmi service available event parsing should
not return error for the newly added optional TLV.
Fix this parsing for service available event message.

Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.2.2-00720-QCAHLSWMTPL-1

Fixes: cea19a6ce8bf ("ath10k: add WMI_SERVICE_AVAILABLE_EVENT support")
Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
---
Changes from v2:
- Add code documentation explaining the necessity of variable
  initialization for the logic to work.
---
 drivers/net/wireless/ath/ath10k/wmi-tlv.c | 4 +++-
 drivers/net/wireless/ath/ath10k/wmi.c     | 9 +++++++--
 drivers/net/wireless/ath/ath10k/wmi.h     | 1 +
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/wmi-tlv.c b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
index 932266d..7b58341 100644
--- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c
+++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
@@ -1401,13 +1401,15 @@ static int ath10k_wmi_tlv_svc_avail_parse(struct ath10k *ar, u16 tag, u16 len,
 
 	switch (tag) {
 	case WMI_TLV_TAG_STRUCT_SERVICE_AVAILABLE_EVENT:
+		arg->service_map_ext_valid = true;
 		arg->service_map_ext_len = *(__le32 *)ptr;
 		arg->service_map_ext = ptr + sizeof(__le32);
 		return 0;
 	default:
 		break;
 	}
-	return -EPROTO;
+
+	return 0;
 }
 
 static int ath10k_wmi_tlv_op_pull_svc_avail(struct ath10k *ar,
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
index 1fa7107..37b53af 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -5751,8 +5751,13 @@ void ath10k_wmi_event_service_available(struct ath10k *ar, struct sk_buff *skb)
 			    ret);
 	}
 
-	ath10k_wmi_map_svc_ext(ar, arg.service_map_ext, ar->wmi.svc_map,
-			       __le32_to_cpu(arg.service_map_ext_len));
+	/*
+	 * Initialization of "arg.service_map_ext_valid" to ZERO is necessary
+	 * for the below logic to work.
+	 */
+	if (arg.service_map_ext_valid)
+		ath10k_wmi_map_svc_ext(ar, arg.service_map_ext, ar->wmi.svc_map,
+				       __le32_to_cpu(arg.service_map_ext_len));
 }
 
 static int ath10k_wmi_event_temperature(struct ath10k *ar, struct sk_buff *skb)
diff --git a/drivers/net/wireless/ath/ath10k/wmi.h b/drivers/net/wireless/ath/ath10k/wmi.h
index 4898e19..66ecf09 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.h
+++ b/drivers/net/wireless/ath/ath10k/wmi.h
@@ -6917,6 +6917,7 @@ struct wmi_svc_rdy_ev_arg {
 };
 
 struct wmi_svc_avail_ev_arg {
+	bool service_map_ext_valid;
 	__le32 service_map_ext_len;
 	const __le32 *service_map_ext;
 };
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v3] ath10k: Fix the parsing error in service available event
  2020-11-16  4:34 [PATCH v3] ath10k: Fix the parsing error in service available event Rakesh Pillai
@ 2020-11-19  0:20 ` Abhishek Kumar
  2020-11-21  0:26 ` Doug Anderson
  2020-12-02 18:28 ` Kalle Valo
  2 siblings, 0 replies; 5+ messages in thread
From: Abhishek Kumar @ 2020-11-19  0:20 UTC (permalink / raw)
  To: Rakesh Pillai
  Cc: ath10k, linux-wireless, LKML, Douglas Anderson, Brian Norris

Hi,

The patch LGTM there is small nit, though.
> +++ b/drivers/net/wireless/ath/ath10k/wmi.c
> @@ -5751,8 +5751,13 @@ void ath10k_wmi_event_service_available(struct ath10k *ar, struct sk_buff *skb)
>                             ret);
>         }
>
> -       ath10k_wmi_map_svc_ext(ar, arg.service_map_ext, ar->wmi.svc_map,
> -                              __le32_to_cpu(arg.service_map_ext_len));
> +       /*
> +        * Initialization of "arg.service_map_ext_valid" to ZERO is necessary
> +        * for the below logic to work.
> +        */

Nit: The comment will throw a checkpatch warning.  "networking block
comments don't use an empty /* line, use /* Comment..."

-Abhishek

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v3] ath10k: Fix the parsing error in service available event
  2020-11-16  4:34 [PATCH v3] ath10k: Fix the parsing error in service available event Rakesh Pillai
  2020-11-19  0:20 ` Abhishek Kumar
@ 2020-11-21  0:26 ` Doug Anderson
  2020-12-02 18:31   ` Kalle Valo
  2020-12-02 18:28 ` Kalle Valo
  2 siblings, 1 reply; 5+ messages in thread
From: Doug Anderson @ 2020-11-21  0:26 UTC (permalink / raw)
  To: Rakesh Pillai; +Cc: ath10k, linux-wireless, LKML, Abhishek Kumar, Brian Norris

Hi,

On Sun, Nov 15, 2020 at 8:35 PM Rakesh Pillai <pillair@codeaurora.org> wrote:
>
> The wmi service available event has been
> extended to contain extra 128 bit for new services
> to be indicated by firmware.
>
> Currently the presence of any optional TLVs in
> the wmi service available event leads to a parsing
> error with the below error message:
> ath10k_snoc 18800000.wifi: failed to parse svc_avail tlv: -71
>
> The wmi service available event parsing should
> not return error for the newly added optional TLV.
> Fix this parsing for service available event message.
>
> Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.2.2-00720-QCAHLSWMTPL-1
>
> Fixes: cea19a6ce8bf ("ath10k: add WMI_SERVICE_AVAILABLE_EVENT support")
> Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
> ---
> Changes from v2:
> - Add code documentation explaining the necessity of variable
>   initialization for the logic to work.
> ---
>  drivers/net/wireless/ath/ath10k/wmi-tlv.c | 4 +++-
>  drivers/net/wireless/ath/ath10k/wmi.c     | 9 +++++++--
>  drivers/net/wireless/ath/ath10k/wmi.h     | 1 +
>  3 files changed, 11 insertions(+), 3 deletions(-)

This looks nice to me now.  I will let Kalle decide what to do about
the checkpatch issue that Abhishek found (ignore, fix himself, or
request another spin).

Reviewed-by: Douglas Anderson <dianders@chromium.org>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v3] ath10k: Fix the parsing error in service available event
  2020-11-16  4:34 [PATCH v3] ath10k: Fix the parsing error in service available event Rakesh Pillai
  2020-11-19  0:20 ` Abhishek Kumar
  2020-11-21  0:26 ` Doug Anderson
@ 2020-12-02 18:28 ` Kalle Valo
  2 siblings, 0 replies; 5+ messages in thread
From: Kalle Valo @ 2020-12-02 18:28 UTC (permalink / raw)
  To: Rakesh Pillai
  Cc: ath10k, linux-wireless, linux-kernel, kuabhs, dianders,
	briannorris, Rakesh Pillai

Rakesh Pillai <pillair@codeaurora.org> wrote:

> The wmi service available event has been
> extended to contain extra 128 bit for new services
> to be indicated by firmware.
> 
> Currently the presence of any optional TLVs in
> the wmi service available event leads to a parsing
> error with the below error message:
> ath10k_snoc 18800000.wifi: failed to parse svc_avail tlv: -71
> 
> The wmi service available event parsing should
> not return error for the newly added optional TLV.
> Fix this parsing for service available event message.
> 
> Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.2.2-00720-QCAHLSWMTPL-1
> 
> Fixes: cea19a6ce8bf ("ath10k: add WMI_SERVICE_AVAILABLE_EVENT support")
> Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
> Reviewed-by: Douglas Anderson <dianders@chromium.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

Patch applied to ath-next branch of ath.git, thanks.

c7cee9c0f499 ath10k: Fix the parsing error in service available event

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/1605501291-23040-1-git-send-email-pillair@codeaurora.org/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v3] ath10k: Fix the parsing error in service available event
  2020-11-21  0:26 ` Doug Anderson
@ 2020-12-02 18:31   ` Kalle Valo
  0 siblings, 0 replies; 5+ messages in thread
From: Kalle Valo @ 2020-12-02 18:31 UTC (permalink / raw)
  To: Doug Anderson
  Cc: Rakesh Pillai, Abhishek Kumar, Brian Norris, linux-wireless,
	LKML, ath10k

Doug Anderson <dianders@chromium.org> writes:

> Hi,
>
> On Sun, Nov 15, 2020 at 8:35 PM Rakesh Pillai <pillair@codeaurora.org> wrote:
>>
>> The wmi service available event has been
>> extended to contain extra 128 bit for new services
>> to be indicated by firmware.
>>
>> Currently the presence of any optional TLVs in
>> the wmi service available event leads to a parsing
>> error with the below error message:
>> ath10k_snoc 18800000.wifi: failed to parse svc_avail tlv: -71
>>
>> The wmi service available event parsing should
>> not return error for the newly added optional TLV.
>> Fix this parsing for service available event message.
>>
>> Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.2.2-00720-QCAHLSWMTPL-1
>>
>> Fixes: cea19a6ce8bf ("ath10k: add WMI_SERVICE_AVAILABLE_EVENT support")
>> Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
>> ---
>> Changes from v2:
>> - Add code documentation explaining the necessity of variable
>>   initialization for the logic to work.
>> ---
>>  drivers/net/wireless/ath/ath10k/wmi-tlv.c | 4 +++-
>>  drivers/net/wireless/ath/ath10k/wmi.c     | 9 +++++++--
>>  drivers/net/wireless/ath/ath10k/wmi.h     | 1 +
>>  3 files changed, 11 insertions(+), 3 deletions(-)
>
> This looks nice to me now.  I will let Kalle decide what to do about
> the checkpatch issue that Abhishek found (ignore, fix himself, or
> request another spin).

Currently ath10k uses mixed of both comment styles and I have disabled
that patchwork check in my ath10k-check script. I should finally try to
unify that and make all ath10k comments to use the networking style,
patches very welcome :)

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-12-02 18:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-16  4:34 [PATCH v3] ath10k: Fix the parsing error in service available event Rakesh Pillai
2020-11-19  0:20 ` Abhishek Kumar
2020-11-21  0:26 ` Doug Anderson
2020-12-02 18:31   ` Kalle Valo
2020-12-02 18:28 ` Kalle Valo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).