2014-10-30 09:18:10

by Pramod Gurav

[permalink] [raw]
Subject: [PATCH] mfd: db8500-prcmu: check return of devm_ioremap for error

Error check around return value of devm_ioremap is missing. Add the same
to avoid NULL pointer dereference.

Cc: Linus Walleij <[email protected]>
Cc: Samuel Ortiz <[email protected]>
Cc: Lee Jones <[email protected]>
Signed-off-by: Pramod Gurav <[email protected]>
---
drivers/mfd/db8500-prcmu.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c
index 193cf16..89ae8bf 100644
--- a/drivers/mfd/db8500-prcmu.c
+++ b/drivers/mfd/db8500-prcmu.c
@@ -3167,6 +3167,11 @@ static int db8500_prcmu_probe(struct platform_device *pdev)
}
tcdm_base = devm_ioremap(&pdev->dev, res->start,
resource_size(res));
+ if (!tcdm_base) {
+ dev_err(&pdev->dev,
+ "failed to ioremap prcmu-tcdm register memory\n");
+ return -ENOENT;
+ }

/* Clean up the mailbox interrupts after pre-kernel code. */
writel(ALL_MBOX_BITS, PRCM_ARM_IT1_CLR);
--
1.7.9.5


2014-10-31 21:11:05

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH] mfd: db8500-prcmu: check return of devm_ioremap for error

On Thu, Oct 30, 2014 at 10:21 AM, Pramod Gurav
<[email protected]> wrote:

> Error check around return value of devm_ioremap is missing. Add the same
> to avoid NULL pointer dereference.
>
> Cc: Linus Walleij <[email protected]>
> Cc: Samuel Ortiz <[email protected]>
> Cc: Lee Jones <[email protected]>
> Signed-off-by: Pramod Gurav <[email protected]>

Acked-by: Linus Walleij <[email protected]>

Yours,
Linus Walleij

2014-11-03 16:06:01

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH] mfd: db8500-prcmu: check return of devm_ioremap for error

On Thu, 30 Oct 2014, Pramod Gurav wrote:

> Error check around return value of devm_ioremap is missing. Add the same
> to avoid NULL pointer dereference.
>
> Cc: Linus Walleij <[email protected]>
> Cc: Samuel Ortiz <[email protected]>
> Cc: Lee Jones <[email protected]>
> Signed-off-by: Pramod Gurav <[email protected]>
> ---
> drivers/mfd/db8500-prcmu.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c
> index 193cf16..89ae8bf 100644
> --- a/drivers/mfd/db8500-prcmu.c
> +++ b/drivers/mfd/db8500-prcmu.c
> @@ -3167,6 +3167,11 @@ static int db8500_prcmu_probe(struct platform_device *pdev)
> }
> tcdm_base = devm_ioremap(&pdev->dev, res->start,
> resource_size(res));
> + if (!tcdm_base) {
> + dev_err(&pdev->dev,
> + "failed to ioremap prcmu-tcdm register memory\n");
> + return -ENOENT;

No such file or directory? I think not.

Changed to -ENOMEM and applied with Linus' Ack.

> + }
>
> /* Clean up the mailbox interrupts after pre-kernel code. */
> writel(ALL_MBOX_BITS, PRCM_ARM_IT1_CLR);

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

2014-11-03 16:45:16

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH] mfd: db8500-prcmu: check return of devm_ioremap for error

On Mon, 03 Nov 2014, Lee Jones wrote:

> On Thu, 30 Oct 2014, Pramod Gurav wrote:
>
> > Error check around return value of devm_ioremap is missing. Add the same
> > to avoid NULL pointer dereference.
> >
> > Cc: Linus Walleij <[email protected]>
> > Cc: Samuel Ortiz <[email protected]>
> > Cc: Lee Jones <[email protected]>
> > Signed-off-by: Pramod Gurav <[email protected]>
> > ---
> > drivers/mfd/db8500-prcmu.c | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c
> > index 193cf16..89ae8bf 100644
> > --- a/drivers/mfd/db8500-prcmu.c
> > +++ b/drivers/mfd/db8500-prcmu.c
> > @@ -3167,6 +3167,11 @@ static int db8500_prcmu_probe(struct platform_device *pdev)
> > }
> > tcdm_base = devm_ioremap(&pdev->dev, res->start,
> > resource_size(res));
> > + if (!tcdm_base) {
> > + dev_err(&pdev->dev,
> > + "failed to ioremap prcmu-tcdm register memory\n");
> > + return -ENOENT;
>
> No such file or directory? I think not.
>
> Changed to -ENOMEM and applied with Linus' Ack.

Slight change of plan, as it looks like all of the return paths were
bogus. Patch sent instead.

> > + }
> >
> > /* Clean up the mailbox interrupts after pre-kernel code. */
> > writel(ALL_MBOX_BITS, PRCM_ARM_IT1_CLR);
>

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