2011-05-14 06:15:46

by Axel Lin

[permalink] [raw]
Subject: [PATCH] mfd: Fix omap_usbhs_alloc_children error handling

1. Return proper error if omap_usbhs_alloc_child fails
2. In the case of goto err_ehci, we should call platform_device_unregister(ehci)
instead of platform_device_put(ehci) because we have already added the
platform device to device hierarchy.

Signed-off-by: Axel Lin <[email protected]>
---
drivers/mfd/omap-usb-host.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/mfd/omap-usb-host.c b/drivers/mfd/omap-usb-host.c
index 3ab9ffa..344f518 100644
--- a/drivers/mfd/omap-usb-host.c
+++ b/drivers/mfd/omap-usb-host.c
@@ -281,6 +281,7 @@ static int omap_usbhs_alloc_children(struct platform_device *pdev)

if (!ehci) {
dev_err(dev, "omap_usbhs_alloc_child failed\n");
+ ret = -ENOMEM;
goto err_end;
}

@@ -304,13 +305,14 @@ static int omap_usbhs_alloc_children(struct platform_device *pdev)
sizeof(*ohci_data), dev);
if (!ohci) {
dev_err(dev, "omap_usbhs_alloc_child failed\n");
+ ret = -ENOMEM;
goto err_ehci;
}

return 0;

err_ehci:
- platform_device_put(ehci);
+ platform_device_unregister(ehci);

err_end:
return ret;
--
1.7.1



2011-05-16 11:04:01

by Munegowda, Keshava

[permalink] [raw]
Subject: Re: [PATCH] mfd: Fix omap_usbhs_alloc_children error handling

On Sat, May 14, 2011 at 11:45 AM, Axel Lin <[email protected]> wrote:
> 1. Return proper error if omap_usbhs_alloc_child fails
> 2. In the case of goto err_ehci, we should call platform_device_unregister(ehci)
> ? instead of platform_device_put(ehci) because we have already added the
> ? platform device to device hierarchy.
>
> Signed-off-by: Axel Lin <[email protected]>
> ---
> ?drivers/mfd/omap-usb-host.c | ? ?4 +++-
> ?1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/mfd/omap-usb-host.c b/drivers/mfd/omap-usb-host.c
> index 3ab9ffa..344f518 100644
> --- a/drivers/mfd/omap-usb-host.c
> +++ b/drivers/mfd/omap-usb-host.c
> @@ -281,6 +281,7 @@ static int omap_usbhs_alloc_children(struct platform_device *pdev)
>
> ? ? ? ?if (!ehci) {
> ? ? ? ? ? ? ? ?dev_err(dev, "omap_usbhs_alloc_child failed\n");
> + ? ? ? ? ? ? ? ret = -ENOMEM;
> ? ? ? ? ? ? ? ?goto err_end;
> ? ? ? ?}
>
> @@ -304,13 +305,14 @@ static int omap_usbhs_alloc_children(struct platform_device *pdev)
> ? ? ? ? ? ? ? ?sizeof(*ohci_data), dev);
> ? ? ? ?if (!ohci) {
> ? ? ? ? ? ? ? ?dev_err(dev, "omap_usbhs_alloc_child failed\n");
> + ? ? ? ? ? ? ? ret = -ENOMEM;
> ? ? ? ? ? ? ? ?goto err_ehci;
> ? ? ? ?}
>
> ? ? ? ?return 0;
>
> ?err_ehci:
> - ? ? ? platform_device_put(ehci);
> + ? ? ? platform_device_unregister(ehci);
>
> ?err_end:
> ? ? ? ?return ret;
> --
> 1.7.1
>

Looks goo to me;

Balbi,
I will take this patch on top of hwmod and runtime pm patches?
is it OK for you.

2011-05-16 11:12:34

by Felipe Balbi

[permalink] [raw]
Subject: Re: [PATCH] mfd: Fix omap_usbhs_alloc_children error handling

Hi,

On Mon, May 16, 2011 at 04:33:58PM +0530, Munegowda, Keshava wrote:
> On Sat, May 14, 2011 at 11:45 AM, Axel Lin <[email protected]> wrote:
> > 1. Return proper error if omap_usbhs_alloc_child fails
> > 2. In the case of goto err_ehci, we should call platform_device_unregister(ehci)
> > ? instead of platform_device_put(ehci) because we have already added the
> > ? platform device to device hierarchy.
> >
> > Signed-off-by: Axel Lin <[email protected]>
> > ---
> > ?drivers/mfd/omap-usb-host.c | ? ?4 +++-
> > ?1 files changed, 3 insertions(+), 1 deletions(-)
> >
> > diff --git a/drivers/mfd/omap-usb-host.c b/drivers/mfd/omap-usb-host.c
> > index 3ab9ffa..344f518 100644
> > --- a/drivers/mfd/omap-usb-host.c
> > +++ b/drivers/mfd/omap-usb-host.c
> > @@ -281,6 +281,7 @@ static int omap_usbhs_alloc_children(struct platform_device *pdev)
> >
> > ? ? ? ?if (!ehci) {
> > ? ? ? ? ? ? ? ?dev_err(dev, "omap_usbhs_alloc_child failed\n");
> > + ? ? ? ? ? ? ? ret = -ENOMEM;
> > ? ? ? ? ? ? ? ?goto err_end;
> > ? ? ? ?}
> >
> > @@ -304,13 +305,14 @@ static int omap_usbhs_alloc_children(struct platform_device *pdev)
> > ? ? ? ? ? ? ? ?sizeof(*ohci_data), dev);
> > ? ? ? ?if (!ohci) {
> > ? ? ? ? ? ? ? ?dev_err(dev, "omap_usbhs_alloc_child failed\n");
> > + ? ? ? ? ? ? ? ret = -ENOMEM;
> > ? ? ? ? ? ? ? ?goto err_ehci;
> > ? ? ? ?}
> >
> > ? ? ? ?return 0;
> >
> > ?err_ehci:
> > - ? ? ? platform_device_put(ehci);
> > + ? ? ? platform_device_unregister(ehci);
> >
> > ?err_end:
> > ? ? ? ?return ret;
> > --
> > 1.7.1
> >
>
> Looks goo to me;
>
> Balbi,
> I will take this patch on top of hwmod and runtime pm patches?
> is it OK for you.

It's ok. Just be sure to split the series correctly:

arch/arm/*omap*/ -> to Tony
drivers/mfd/* -> to Samuel

--
balbi


Attachments:
(No filename) (1.74 kB)
signature.asc (490.00 B)
Digital signature
Download all attachments

2011-05-22 19:09:48

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH] mfd: Fix omap_usbhs_alloc_children error handling

Hi Axel,

On Sat, May 14, 2011 at 02:15:36PM +0800, Axel Lin wrote:
> 1. Return proper error if omap_usbhs_alloc_child fails
> 2. In the case of goto err_ehci, we should call platform_device_unregister(ehci)
> instead of platform_device_put(ehci) because we have already added the
> platform device to device hierarchy.
Patch applied, thanks a lot.

Cheers,
Samuel.

--
Intel Open Source Technology Centre
http://oss.intel.com/