2020-09-02 14:17:26

by Yue Haibing

[permalink] [raw]
Subject: [PATCH -next] remoteproc: k3-dsp: Fix return value check in k3_dsp_rproc_of_get_memories()

In case of error, the function devm_ioremap_wc() returns NULL pointer
not ERR_PTR(). The IS_ERR() test in the return value check should be
replaced with NULL test.

Fixes: 87218f96c21a ("remoteproc: k3-dsp: Add support for C71x DSPs")
Signed-off-by: YueHaibing <[email protected]>
---
drivers/remoteproc/ti_k3_dsp_remoteproc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/remoteproc/ti_k3_dsp_remoteproc.c b/drivers/remoteproc/ti_k3_dsp_remoteproc.c
index 9011e477290c..f373df35d7d0 100644
--- a/drivers/remoteproc/ti_k3_dsp_remoteproc.c
+++ b/drivers/remoteproc/ti_k3_dsp_remoteproc.c
@@ -445,10 +445,10 @@ static int k3_dsp_rproc_of_get_memories(struct platform_device *pdev,

kproc->mem[i].cpu_addr = devm_ioremap_wc(dev, res->start,
resource_size(res));
- if (IS_ERR(kproc->mem[i].cpu_addr)) {
+ if (!kproc->mem[i].cpu_addr) {
dev_err(dev, "failed to map %s memory\n",
data->mems[i].name);
- return PTR_ERR(kproc->mem[i].cpu_addr);
+ return -EBUSY;
}
kproc->mem[i].bus_addr = res->start;
kproc->mem[i].dev_addr = data->mems[i].dev_addr;
--
2.17.1



2020-09-02 14:34:12

by Suman Anna

[permalink] [raw]
Subject: Re: [PATCH -next] remoteproc: k3-dsp: Fix return value check in k3_dsp_rproc_of_get_memories()

On 9/2/20 9:06 AM, YueHaibing wrote:
> In case of error, the function devm_ioremap_wc() returns NULL pointer
> not ERR_PTR(). The IS_ERR() test in the return value check should be
> replaced with NULL test.

Thanks for the fix.

>
> Fixes: 87218f96c21a ("remoteproc: k3-dsp: Add support for C71x DSPs")

This should instead be
Fixes: 6edbe024ba17 ("remoteproc: k3-dsp: Add a remoteproc driver of K3 C66x DSPs")

With that,
Acked-by: Suman Anna <[email protected]>

> Signed-off-by: YueHaibing <[email protected]>
> ---
> drivers/remoteproc/ti_k3_dsp_remoteproc.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/remoteproc/ti_k3_dsp_remoteproc.c b/drivers/remoteproc/ti_k3_dsp_remoteproc.c
> index 9011e477290c..f373df35d7d0 100644
> --- a/drivers/remoteproc/ti_k3_dsp_remoteproc.c
> +++ b/drivers/remoteproc/ti_k3_dsp_remoteproc.c
> @@ -445,10 +445,10 @@ static int k3_dsp_rproc_of_get_memories(struct platform_device *pdev,
>
> kproc->mem[i].cpu_addr = devm_ioremap_wc(dev, res->start,
> resource_size(res));
> - if (IS_ERR(kproc->mem[i].cpu_addr)) {
> + if (!kproc->mem[i].cpu_addr) {
> dev_err(dev, "failed to map %s memory\n",
> data->mems[i].name);
> - return PTR_ERR(kproc->mem[i].cpu_addr);
> + return -EBUSY;
> }
> kproc->mem[i].bus_addr = res->start;
> kproc->mem[i].dev_addr = data->mems[i].dev_addr;
>

2020-09-02 17:03:34

by Mathieu Poirier

[permalink] [raw]
Subject: Re: [PATCH -next] remoteproc: k3-dsp: Fix return value check in k3_dsp_rproc_of_get_memories()

On Wed, Sep 02, 2020 at 10:06:14PM +0800, YueHaibing wrote:
> In case of error, the function devm_ioremap_wc() returns NULL pointer
> not ERR_PTR(). The IS_ERR() test in the return value check should be
> replaced with NULL test.
>
> Fixes: 87218f96c21a ("remoteproc: k3-dsp: Add support for C71x DSPs")
> Signed-off-by: YueHaibing <[email protected]>
> ---
> drivers/remoteproc/ti_k3_dsp_remoteproc.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/remoteproc/ti_k3_dsp_remoteproc.c b/drivers/remoteproc/ti_k3_dsp_remoteproc.c
> index 9011e477290c..f373df35d7d0 100644
> --- a/drivers/remoteproc/ti_k3_dsp_remoteproc.c
> +++ b/drivers/remoteproc/ti_k3_dsp_remoteproc.c
> @@ -445,10 +445,10 @@ static int k3_dsp_rproc_of_get_memories(struct platform_device *pdev,
>
> kproc->mem[i].cpu_addr = devm_ioremap_wc(dev, res->start,
> resource_size(res));
> - if (IS_ERR(kproc->mem[i].cpu_addr)) {
> + if (!kproc->mem[i].cpu_addr) {
> dev_err(dev, "failed to map %s memory\n",
> data->mems[i].name);
> - return PTR_ERR(kproc->mem[i].cpu_addr);
> + return -EBUSY;

Shouldn't this be -ENOMEM?

> }
> kproc->mem[i].bus_addr = res->start;
> kproc->mem[i].dev_addr = data->mems[i].dev_addr;
> --
> 2.17.1
>
>

2020-09-04 15:46:37

by Suman Anna

[permalink] [raw]
Subject: Re: [PATCH -next] remoteproc: k3-dsp: Fix return value check in k3_dsp_rproc_of_get_memories()

On 9/2/20 11:59 AM, Mathieu Poirier wrote:
> On Wed, Sep 02, 2020 at 10:06:14PM +0800, YueHaibing wrote:
>> In case of error, the function devm_ioremap_wc() returns NULL pointer
>> not ERR_PTR(). The IS_ERR() test in the return value check should be
>> replaced with NULL test.
>>
>> Fixes: 87218f96c21a ("remoteproc: k3-dsp: Add support for C71x DSPs")
>> Signed-off-by: YueHaibing <[email protected]>
>> ---
>> drivers/remoteproc/ti_k3_dsp_remoteproc.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/remoteproc/ti_k3_dsp_remoteproc.c b/drivers/remoteproc/ti_k3_dsp_remoteproc.c
>> index 9011e477290c..f373df35d7d0 100644
>> --- a/drivers/remoteproc/ti_k3_dsp_remoteproc.c
>> +++ b/drivers/remoteproc/ti_k3_dsp_remoteproc.c
>> @@ -445,10 +445,10 @@ static int k3_dsp_rproc_of_get_memories(struct platform_device *pdev,
>>
>> kproc->mem[i].cpu_addr = devm_ioremap_wc(dev, res->start,
>> resource_size(res));
>> - if (IS_ERR(kproc->mem[i].cpu_addr)) {
>> + if (!kproc->mem[i].cpu_addr) {
>> dev_err(dev, "failed to map %s memory\n",
>> data->mems[i].name);
>> - return PTR_ERR(kproc->mem[i].cpu_addr);
>> + return -EBUSY;
>
> Shouldn't this be -ENOMEM?

Indeed, thanks for catching it.

I will fix these same issues on the K3 R5F driver for v4.

regards
Suman

>
>> }
>> kproc->mem[i].bus_addr = res->start;
>> kproc->mem[i].dev_addr = data->mems[i].dev_addr;
>> --
>> 2.17.1
>>
>>

2020-09-05 12:26:44

by Yue Haibing

[permalink] [raw]
Subject: [PATCH v2 -next] remoteproc: k3-dsp: Fix return value check in k3_dsp_rproc_of_get_memories()

In case of error, the function devm_ioremap_wc() returns NULL pointer
not ERR_PTR(). The IS_ERR() test in the return value check should be
replaced with NULL test.

Fixes: 6edbe024ba17 ("remoteproc: k3-dsp: Add a remoteproc driver of K3 C66x DSPs")
Signed-off-by: YueHaibing <[email protected]>
Acked-by: Suman Anna <[email protected]>
---
v2: return ENOMEM instead of EBUSY, use corret Fixes tag
---
drivers/remoteproc/ti_k3_dsp_remoteproc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/remoteproc/ti_k3_dsp_remoteproc.c b/drivers/remoteproc/ti_k3_dsp_remoteproc.c
index 9011e477290c..f373df35d7d0 100644
--- a/drivers/remoteproc/ti_k3_dsp_remoteproc.c
+++ b/drivers/remoteproc/ti_k3_dsp_remoteproc.c
@@ -445,10 +445,10 @@ static int k3_dsp_rproc_of_get_memories(struct platform_device *pdev,

kproc->mem[i].cpu_addr = devm_ioremap_wc(dev, res->start,
resource_size(res));
- if (IS_ERR(kproc->mem[i].cpu_addr)) {
+ if (!kproc->mem[i].cpu_addr) {
dev_err(dev, "failed to map %s memory\n",
data->mems[i].name);
- return PTR_ERR(kproc->mem[i].cpu_addr);
+ return -ENOMEM;
}
kproc->mem[i].bus_addr = res->start;
kproc->mem[i].dev_addr = data->mems[i].dev_addr;
--
2.17.1


2020-09-10 19:52:11

by Mathieu Poirier

[permalink] [raw]
Subject: Re: [PATCH v2 -next] remoteproc: k3-dsp: Fix return value check in k3_dsp_rproc_of_get_memories()

On Sat, Sep 05, 2020 at 08:25:03PM +0800, YueHaibing wrote:
> In case of error, the function devm_ioremap_wc() returns NULL pointer
> not ERR_PTR(). The IS_ERR() test in the return value check should be
> replaced with NULL test.
>
> Fixes: 6edbe024ba17 ("remoteproc: k3-dsp: Add a remoteproc driver of K3 C66x DSPs")
> Signed-off-by: YueHaibing <[email protected]>
> Acked-by: Suman Anna <[email protected]>

Reviewed-by: Mathieu Poirier <[email protected]>

> ---
> v2: return ENOMEM instead of EBUSY, use corret Fixes tag
> ---
> drivers/remoteproc/ti_k3_dsp_remoteproc.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/remoteproc/ti_k3_dsp_remoteproc.c b/drivers/remoteproc/ti_k3_dsp_remoteproc.c
> index 9011e477290c..f373df35d7d0 100644
> --- a/drivers/remoteproc/ti_k3_dsp_remoteproc.c
> +++ b/drivers/remoteproc/ti_k3_dsp_remoteproc.c
> @@ -445,10 +445,10 @@ static int k3_dsp_rproc_of_get_memories(struct platform_device *pdev,
>
> kproc->mem[i].cpu_addr = devm_ioremap_wc(dev, res->start,
> resource_size(res));
> - if (IS_ERR(kproc->mem[i].cpu_addr)) {
> + if (!kproc->mem[i].cpu_addr) {
> dev_err(dev, "failed to map %s memory\n",
> data->mems[i].name);
> - return PTR_ERR(kproc->mem[i].cpu_addr);
> + return -ENOMEM;
> }
> kproc->mem[i].bus_addr = res->start;
> kproc->mem[i].dev_addr = data->mems[i].dev_addr;
> --
> 2.17.1
>
>