[PATCH v8 2/5] soc: qcom: pdr: fix parsing of domains lists

Dmitry Baryshkov posted 5 patches 1 year, 7 months ago
There is a newer version of this series
[PATCH v8 2/5] soc: qcom: pdr: fix parsing of domains lists
Posted by Dmitry Baryshkov 1 year, 7 months ago
While parsing the domains list, start offsets from 0 rather than from
domains_read. The domains_read is equal to the total count of the
domains we have seen, while the domains list in the message starts from
offset 0.

Fixes: fbe639b44a82 ("soc: qcom: Introduce Protection Domain Restart helpers")
Tested-by: Steev Klimaszewski <steev@kali.org>
Tested-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
 drivers/soc/qcom/pdr_interface.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/soc/qcom/pdr_interface.c b/drivers/soc/qcom/pdr_interface.c
index e014dd2d8ab3..d495ee736519 100644
--- a/drivers/soc/qcom/pdr_interface.c
+++ b/drivers/soc/qcom/pdr_interface.c
@@ -422,7 +422,7 @@ static int pdr_locate_service(struct pdr_handle *pdr, struct pdr_service *pds)
 		if (ret < 0)
 			goto out;
 
-		for (i = domains_read; i < resp->domain_list_len; i++) {
+		for (i = 0; i < resp->domain_list_len; i++) {
 			entry = &resp->domain_list[i];
 
 			if (strnlen(entry->name, sizeof(entry->name)) == sizeof(entry->name))

-- 
2.39.2
Re: [PATCH v8 2/5] soc: qcom: pdr: fix parsing of domains lists
Posted by Chris Lew 1 year, 6 months ago

On 5/11/2024 2:56 PM, Dmitry Baryshkov wrote:
> While parsing the domains list, start offsets from 0 rather than from
> domains_read. The domains_read is equal to the total count of the
> domains we have seen, while the domains list in the message starts from
> offset 0.
> 
> Fixes: fbe639b44a82 ("soc: qcom: Introduce Protection Domain Restart helpers")
> Tested-by: Steev Klimaszewski <steev@kali.org>
> Tested-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
>   drivers/soc/qcom/pdr_interface.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/soc/qcom/pdr_interface.c b/drivers/soc/qcom/pdr_interface.c
> index e014dd2d8ab3..d495ee736519 100644
> --- a/drivers/soc/qcom/pdr_interface.c
> +++ b/drivers/soc/qcom/pdr_interface.c
> @@ -422,7 +422,7 @@ static int pdr_locate_service(struct pdr_handle *pdr, struct pdr_service *pds)
>   		if (ret < 0)
>   			goto out;
>   
> -		for (i = domains_read; i < resp->domain_list_len; i++) {
> +		for (i = 0; i < resp->domain_list_len; i++) {
>   			entry = &resp->domain_list[i];
>   
>   			if (strnlen(entry->name, sizeof(entry->name)) == sizeof(entry->name))
> 

Reviewed-by: Chris Lew <quic_clew@quicinc.com>