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
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
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
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