From: Emil Goode <emilgoode@gmail.com>
To: linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3] ARM: imx: fix error handling in ipu device registration
Date: Sat, 17 May 2014 22:22:10 +0000 [thread overview]
Message-ID: <20140517222210.GA20413@lianli> (raw)
In-Reply-To: <20140517191821.GD16662@pengutronix.de>
Hello Uwe,
I was to quick to resend the patch, sorry.
On Sat, May 17, 2014 at 09:18:21PM +0200, Uwe Kleine-König wrote:
> Hello Emil,
>
> On Sat, May 17, 2014 at 08:40:33PM +0200, Emil Goode wrote:
> > If we fail to allocate struct platform_device pdev we
> > dereference it after the goto label err.
> >
> > I have rearranged the error handling a bit to fix the issue
> > and also make it more clear.
> >
> > Signed-off-by: Emil Goode <emilgoode@gmail.com>
> > ---
> > v3: Made subject line more specific.
> > v2: Changed to return -ENOMEM instead of ret where possible and
> > updated the subject line.
> >
> > arch/arm/mach-imx/devices/platform-ipu-core.c | 22 +++++++++++++---------
> > 1 file changed, 13 insertions(+), 9 deletions(-)
> Considering that you can fix the issue also by just doing:
>
> diff --git a/arch/arm/mach-imx/devices/platform-ipu-core.c b/arch/arm/mach-imx/devices/platform-ipu-core.c
> index fc4dd7cedc11..6bd7c3f37ac0 100644
> --- a/arch/arm/mach-imx/devices/platform-ipu-core.c
> +++ b/arch/arm/mach-imx/devices/platform-ipu-core.c
> @@ -77,7 +77,7 @@ struct platform_device *__init imx_alloc_mx3_camera(
>
> pdev = platform_device_alloc("mx3-camera", 0);
> if (!pdev)
> - goto err;
> + return ERR_PTR(-ENOMEM);
>
> pdev->dev.dma_mask = kmalloc(sizeof(*pdev->dev.dma_mask), GFP_KERNEL);
> if (!pdev->dev.dma_mask)
>
> or
>
> diff --git a/arch/arm/mach-imx/devices/platform-ipu-core.c b/arch/arm/mach-imx/devices/platform-ipu-core.c
> index fc4dd7cedc11..c609f3667200 100644
> --- a/arch/arm/mach-imx/devices/platform-ipu-core.c
> +++ b/arch/arm/mach-imx/devices/platform-ipu-core.c
> @@ -96,7 +96,8 @@ struct platform_device *__init imx_alloc_mx3_camera(
> ret = platform_device_add_data(pdev, pdata, sizeof(*pdata));
> if (ret) {
> err:
> - kfree(pdev->dev.dma_mask);
> + if (pdev)
> + kfree(pdev->dev.dma_mask);
> platform_device_put(pdev);
> return ERR_PTR(-ENODEV);
> }
>
> I would prefer one of them as it is easier to justify and for the next
> cycle convert the function to platform_device_register_full.
Agreed, that makes sense considering the second patch that would convert to
platform_device_register_full().
>
> Also you should point out in the commit log that the issue was found by
> coccinelle.
Ok, will do that.
Thank you!
Best regards,
Emil Goode
--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: emilgoode@gmail.com (Emil Goode)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3] ARM: imx: fix error handling in ipu device registration
Date: Sun, 18 May 2014 00:22:10 +0200 [thread overview]
Message-ID: <20140517222210.GA20413@lianli> (raw)
In-Reply-To: <20140517191821.GD16662@pengutronix.de>
Hello Uwe,
I was to quick to resend the patch, sorry.
On Sat, May 17, 2014 at 09:18:21PM +0200, Uwe Kleine-K?nig wrote:
> Hello Emil,
>
> On Sat, May 17, 2014 at 08:40:33PM +0200, Emil Goode wrote:
> > If we fail to allocate struct platform_device pdev we
> > dereference it after the goto label err.
> >
> > I have rearranged the error handling a bit to fix the issue
> > and also make it more clear.
> >
> > Signed-off-by: Emil Goode <emilgoode@gmail.com>
> > ---
> > v3: Made subject line more specific.
> > v2: Changed to return -ENOMEM instead of ret where possible and
> > updated the subject line.
> >
> > arch/arm/mach-imx/devices/platform-ipu-core.c | 22 +++++++++++++---------
> > 1 file changed, 13 insertions(+), 9 deletions(-)
> Considering that you can fix the issue also by just doing:
>
> diff --git a/arch/arm/mach-imx/devices/platform-ipu-core.c b/arch/arm/mach-imx/devices/platform-ipu-core.c
> index fc4dd7cedc11..6bd7c3f37ac0 100644
> --- a/arch/arm/mach-imx/devices/platform-ipu-core.c
> +++ b/arch/arm/mach-imx/devices/platform-ipu-core.c
> @@ -77,7 +77,7 @@ struct platform_device *__init imx_alloc_mx3_camera(
>
> pdev = platform_device_alloc("mx3-camera", 0);
> if (!pdev)
> - goto err;
> + return ERR_PTR(-ENOMEM);
>
> pdev->dev.dma_mask = kmalloc(sizeof(*pdev->dev.dma_mask), GFP_KERNEL);
> if (!pdev->dev.dma_mask)
>
> or
>
> diff --git a/arch/arm/mach-imx/devices/platform-ipu-core.c b/arch/arm/mach-imx/devices/platform-ipu-core.c
> index fc4dd7cedc11..c609f3667200 100644
> --- a/arch/arm/mach-imx/devices/platform-ipu-core.c
> +++ b/arch/arm/mach-imx/devices/platform-ipu-core.c
> @@ -96,7 +96,8 @@ struct platform_device *__init imx_alloc_mx3_camera(
> ret = platform_device_add_data(pdev, pdata, sizeof(*pdata));
> if (ret) {
> err:
> - kfree(pdev->dev.dma_mask);
> + if (pdev)
> + kfree(pdev->dev.dma_mask);
> platform_device_put(pdev);
> return ERR_PTR(-ENODEV);
> }
>
> I would prefer one of them as it is easier to justify and for the next
> cycle convert the function to platform_device_register_full.
Agreed, that makes sense considering the second patch that would convert to
platform_device_register_full().
>
> Also you should point out in the commit log that the issue was found by
> coccinelle.
Ok, will do that.
Thank you!
Best regards,
Emil Goode
WARNING: multiple messages have this Message-ID (diff)
From: Emil Goode <emilgoode@gmail.com>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: Shawn Guo <shawn.guo@freescale.com>,
Sascha Hauer <kernel@pengutronix.de>,
Russell King <linux@arm.linux.org.uk>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org
Subject: Re: [PATCH v3] ARM: imx: fix error handling in ipu device registration
Date: Sun, 18 May 2014 00:22:10 +0200 [thread overview]
Message-ID: <20140517222210.GA20413@lianli> (raw)
In-Reply-To: <20140517191821.GD16662@pengutronix.de>
Hello Uwe,
I was to quick to resend the patch, sorry.
On Sat, May 17, 2014 at 09:18:21PM +0200, Uwe Kleine-König wrote:
> Hello Emil,
>
> On Sat, May 17, 2014 at 08:40:33PM +0200, Emil Goode wrote:
> > If we fail to allocate struct platform_device pdev we
> > dereference it after the goto label err.
> >
> > I have rearranged the error handling a bit to fix the issue
> > and also make it more clear.
> >
> > Signed-off-by: Emil Goode <emilgoode@gmail.com>
> > ---
> > v3: Made subject line more specific.
> > v2: Changed to return -ENOMEM instead of ret where possible and
> > updated the subject line.
> >
> > arch/arm/mach-imx/devices/platform-ipu-core.c | 22 +++++++++++++---------
> > 1 file changed, 13 insertions(+), 9 deletions(-)
> Considering that you can fix the issue also by just doing:
>
> diff --git a/arch/arm/mach-imx/devices/platform-ipu-core.c b/arch/arm/mach-imx/devices/platform-ipu-core.c
> index fc4dd7cedc11..6bd7c3f37ac0 100644
> --- a/arch/arm/mach-imx/devices/platform-ipu-core.c
> +++ b/arch/arm/mach-imx/devices/platform-ipu-core.c
> @@ -77,7 +77,7 @@ struct platform_device *__init imx_alloc_mx3_camera(
>
> pdev = platform_device_alloc("mx3-camera", 0);
> if (!pdev)
> - goto err;
> + return ERR_PTR(-ENOMEM);
>
> pdev->dev.dma_mask = kmalloc(sizeof(*pdev->dev.dma_mask), GFP_KERNEL);
> if (!pdev->dev.dma_mask)
>
> or
>
> diff --git a/arch/arm/mach-imx/devices/platform-ipu-core.c b/arch/arm/mach-imx/devices/platform-ipu-core.c
> index fc4dd7cedc11..c609f3667200 100644
> --- a/arch/arm/mach-imx/devices/platform-ipu-core.c
> +++ b/arch/arm/mach-imx/devices/platform-ipu-core.c
> @@ -96,7 +96,8 @@ struct platform_device *__init imx_alloc_mx3_camera(
> ret = platform_device_add_data(pdev, pdata, sizeof(*pdata));
> if (ret) {
> err:
> - kfree(pdev->dev.dma_mask);
> + if (pdev)
> + kfree(pdev->dev.dma_mask);
> platform_device_put(pdev);
> return ERR_PTR(-ENODEV);
> }
>
> I would prefer one of them as it is easier to justify and for the next
> cycle convert the function to platform_device_register_full.
Agreed, that makes sense considering the second patch that would convert to
platform_device_register_full().
>
> Also you should point out in the commit log that the issue was found by
> coccinelle.
Ok, will do that.
Thank you!
Best regards,
Emil Goode
next prev parent reply other threads:[~2014-05-17 22:22 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-17 18:40 [PATCH v3] ARM: imx: fix error handling in ipu device registration Emil Goode
2014-05-17 18:40 ` Emil Goode
2014-05-17 18:40 ` Emil Goode
2014-05-17 19:18 ` Uwe Kleine-König
2014-05-17 19:18 ` Uwe Kleine-König
2014-05-17 19:18 ` Uwe Kleine-König
2014-05-17 22:08 ` Dan Carpenter
2014-05-17 22:08 ` Dan Carpenter
2014-05-17 22:08 ` Dan Carpenter
2014-05-17 22:35 ` Russell King - ARM Linux
2014-05-17 22:35 ` Russell King - ARM Linux
2014-05-17 22:35 ` Russell King - ARM Linux
2014-05-17 22:53 ` Dan Carpenter
2014-05-17 22:53 ` Dan Carpenter
2014-05-17 22:53 ` Dan Carpenter
2014-05-17 22:57 ` Emil Goode
2014-05-17 22:57 ` Emil Goode
2014-05-17 22:57 ` Emil Goode
2014-05-17 22:51 ` Emil Goode
2014-05-17 22:51 ` Emil Goode
2014-05-17 22:51 ` Emil Goode
2014-05-17 22:22 ` Emil Goode [this message]
2014-05-17 22:22 ` Emil Goode
2014-05-17 22:22 ` Emil Goode
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140517222210.GA20413@lianli \
--to=emilgoode@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.