2020-09-14 15:02:55

by Sibi Sankar

[permalink] [raw]
Subject: [PATCH] soc: qcom: pdr: Fixup array type of get_domain_list_resp message

The array type of get_domain_list_resp is incorrectly marked as NO_ARRAY.
Due to which the following error was observed when using pdr helpers with
the downstream proprietary pd-mapper. Fix this up by marking it as
VAR_LEN_ARRAY instead.

Err logs:
qmi_decode_struct_elem: Fault in decoding: dl(2), db(27), tl(160), i(1), el(1)
failed to decode incoming message
PDR: tms/servreg get domain list txn wait failed: -14
PDR: service lookup for tms/servreg failed: -14

Fixes: fbe639b44a82 ("soc: qcom: Introduce Protection Domain Restart helpers")
Reported-by: Rishabh Bhatnagar <[email protected]>
Signed-off-by: Sibi Sankar <[email protected]>
---
drivers/soc/qcom/pdr_internal.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/soc/qcom/pdr_internal.h b/drivers/soc/qcom/pdr_internal.h
index 15b5002e4127b..ab9ae8cdfa54c 100644
--- a/drivers/soc/qcom/pdr_internal.h
+++ b/drivers/soc/qcom/pdr_internal.h
@@ -185,7 +185,7 @@ struct qmi_elem_info servreg_get_domain_list_resp_ei[] = {
.data_type = QMI_STRUCT,
.elem_len = SERVREG_DOMAIN_LIST_LENGTH,
.elem_size = sizeof(struct servreg_location_entry),
- .array_type = NO_ARRAY,
+ .array_type = VAR_LEN_ARRAY,
.tlv_type = 0x12,
.offset = offsetof(struct servreg_get_domain_list_resp,
domain_list),
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project


2020-09-14 21:15:20

by Rishabh Bhatnagar

[permalink] [raw]
Subject: Re: [PATCH] soc: qcom: pdr: Fixup array type of get_domain_list_resp message

On 2020-09-14 07:58, Sibi Sankar wrote:
> The array type of get_domain_list_resp is incorrectly marked as
> NO_ARRAY.
> Due to which the following error was observed when using pdr helpers
> with
> the downstream proprietary pd-mapper. Fix this up by marking it as
> VAR_LEN_ARRAY instead.
>
> Err logs:
> qmi_decode_struct_elem: Fault in decoding: dl(2), db(27), tl(160),
> i(1), el(1)
> failed to decode incoming message
> PDR: tms/servreg get domain list txn wait failed: -14
> PDR: service lookup for tms/servreg failed: -14
>
> Fixes: fbe639b44a82 ("soc: qcom: Introduce Protection Domain Restart
> helpers")
> Reported-by: Rishabh Bhatnagar <[email protected]>
> Signed-off-by: Sibi Sankar <[email protected]>
> ---
> drivers/soc/qcom/pdr_internal.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/soc/qcom/pdr_internal.h
> b/drivers/soc/qcom/pdr_internal.h
> index 15b5002e4127b..ab9ae8cdfa54c 100644
> --- a/drivers/soc/qcom/pdr_internal.h
> +++ b/drivers/soc/qcom/pdr_internal.h
> @@ -185,7 +185,7 @@ struct qmi_elem_info
> servreg_get_domain_list_resp_ei[] = {
> .data_type = QMI_STRUCT,
> .elem_len = SERVREG_DOMAIN_LIST_LENGTH,
> .elem_size = sizeof(struct servreg_location_entry),
> - .array_type = NO_ARRAY,
> + .array_type = VAR_LEN_ARRAY,
> .tlv_type = 0x12,
> .offset = offsetof(struct servreg_get_domain_list_resp,
> domain_list),
Tested-by: Rishabh Bhatnagar <[email protected]>