2016-03-19 13:31:24

by Vladimir Zapolskiy

[permalink] [raw]
Subject: [PATCH] remoteproc: st: fix check of syscon_regmap_lookup_by_phandle() return value

syscon_regmap_lookup_by_phandle() returns either a valid pointer to
struct regmap or ERR_PTR() error value, check for NULL is invalid and
on error path may lead to oops, the change corrects the check.

Signed-off-by: Vladimir Zapolskiy <[email protected]>
---
drivers/remoteproc/st_remoteproc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/remoteproc/st_remoteproc.c b/drivers/remoteproc/st_remoteproc.c
index 6bb04d4..6f056ca 100644
--- a/drivers/remoteproc/st_remoteproc.c
+++ b/drivers/remoteproc/st_remoteproc.c
@@ -189,9 +189,9 @@ static int st_rproc_parse_dt(struct platform_device *pdev)
}

ddata->boot_base = syscon_regmap_lookup_by_phandle(np, "st,syscfg");
- if (!ddata->boot_base) {
+ if (IS_ERR(ddata->boot_base)) {
dev_err(dev, "Boot base not found\n");
- return -EINVAL;
+ return PTR_ERR(ddata->boot_base);
}

err = of_property_read_u32_index(np, "st,syscfg", 1,
--
2.1.4


2016-03-21 11:54:21

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH] remoteproc: st: fix check of syscon_regmap_lookup_by_phandle() return value

On Sat, 19 Mar 2016, Vladimir Zapolskiy wrote:

> syscon_regmap_lookup_by_phandle() returns either a valid pointer to
> struct regmap or ERR_PTR() error value, check for NULL is invalid and
> on error path may lead to oops, the change corrects the check.
>
> Signed-off-by: Vladimir Zapolskiy <[email protected]>
> ---
> drivers/remoteproc/st_remoteproc.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)

Acked-by: Lee Jones <[email protected]>

> diff --git a/drivers/remoteproc/st_remoteproc.c b/drivers/remoteproc/st_remoteproc.c
> index 6bb04d4..6f056ca 100644
> --- a/drivers/remoteproc/st_remoteproc.c
> +++ b/drivers/remoteproc/st_remoteproc.c
> @@ -189,9 +189,9 @@ static int st_rproc_parse_dt(struct platform_device *pdev)
> }
>
> ddata->boot_base = syscon_regmap_lookup_by_phandle(np, "st,syscfg");
> - if (!ddata->boot_base) {
> + if (IS_ERR(ddata->boot_base)) {
> dev_err(dev, "Boot base not found\n");
> - return -EINVAL;
> + return PTR_ERR(ddata->boot_base);
> }
>
> err = of_property_read_u32_index(np, "st,syscfg", 1,

--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

2016-03-21 17:21:18

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH] remoteproc: st: fix check of syscon_regmap_lookup_by_phandle() return value

On Sat, Mar 19, 2016 at 6:31 AM, Vladimir Zapolskiy <[email protected]> wrote:
> syscon_regmap_lookup_by_phandle() returns either a valid pointer to
> struct regmap or ERR_PTR() error value, check for NULL is invalid and
> on error path may lead to oops, the change corrects the check.
>
> Signed-off-by: Vladimir Zapolskiy <[email protected]>

Applied, with Lee's ack.

Thanks,
Bjorn