diff mbox

ARM: shmobile: marzen: Use error values in usb_power_*

Message ID 1369205290-6272-2-git-send-email-horms+renesas@verge.net.au (mailing list archive)
State Accepted
Commit 5f10428e4a6d99cc019270c51ad5a33fb38addeb
Headers show

Commit Message

Simon Horman May 22, 2013, 6:48 a.m. UTC
This patch updates the marzen board code as if USB PHY isn't enabled
they phy will have a value set by ERR_PTR() rather than be NULL.

Without this patch a NULL pointer dereference  and kernel panic
occurs on initialisation of USB on marzen.

This resolves a regression introduced in 3.10-rc1 by
b7fa5c2aec5be083eb2719b405089703608e9bc6
("usb: phy: return -ENXIO when PHY layer isn't enabled").

Tested-by: Nguyen Hong Ky <nh-ky@jinso.co.jp>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/mach-shmobile/board-marzen.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Sergei Shtylyov May 22, 2013, 7:50 p.m. UTC | #1
Hello.

On 05/22/2013 10:48 AM, Simon Horman wrote:

> This patch updates the marzen board code as if USB PHY isn't enabled
> they phy will have a value set by ERR_PTR() rather than be NULL.
>
> Without this patch a NULL pointer dereference  and kernel panic
> occurs on initialisation of USB on marzen.
>
> This resolves a regression introduced in 3.10-rc1 by
> b7fa5c2aec5be083eb2719b405089703608e9bc6
> ("usb: phy: return -ENXIO when PHY layer isn't enabled").
>
> Tested-by: Nguyen Hong Ky <nh-ky@jinso.co.jp>
> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
> ---
>   arch/arm/mach-shmobile/board-marzen.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c
> index 9105285..b9594e9 100644
> --- a/arch/arm/mach-shmobile/board-marzen.c
> +++ b/arch/arm/mach-shmobile/board-marzen.c
> @@ -212,8 +212,8 @@ static struct platform_device *marzen_devices[] __initdata = {
>   static struct usb_phy *phy;
>   static int usb_power_on(struct platform_device *pdev)
>   {
> -	if (!phy)
> -		return -EIO;
> +	if (IS_ERR(phy))

    And even before the mentioned commit the right check should have 
been IS_ERR_OR_NULL().
Thanks for finding/fixing this. Too bad I'll have to respin my USB 
patches now... :-)

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Simon Horman May 25, 2013, 12:59 a.m. UTC | #2
On Wed, May 22, 2013 at 11:50:21PM +0400, Sergei Shtylyov wrote:
> Hello.
> 
> On 05/22/2013 10:48 AM, Simon Horman wrote:
> 
> >This patch updates the marzen board code as if USB PHY isn't enabled
> >they phy will have a value set by ERR_PTR() rather than be NULL.
> >
> >Without this patch a NULL pointer dereference  and kernel panic
> >occurs on initialisation of USB on marzen.
> >
> >This resolves a regression introduced in 3.10-rc1 by
> >b7fa5c2aec5be083eb2719b405089703608e9bc6
> >("usb: phy: return -ENXIO when PHY layer isn't enabled").
> >
> >Tested-by: Nguyen Hong Ky <nh-ky@jinso.co.jp>
> >Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
> >---
> >  arch/arm/mach-shmobile/board-marzen.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> >
> >diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c
> >index 9105285..b9594e9 100644
> >--- a/arch/arm/mach-shmobile/board-marzen.c
> >+++ b/arch/arm/mach-shmobile/board-marzen.c
> >@@ -212,8 +212,8 @@ static struct platform_device *marzen_devices[] __initdata = {
> >  static struct usb_phy *phy;
> >  static int usb_power_on(struct platform_device *pdev)
> >  {
> >-	if (!phy)
> >-		return -EIO;
> >+	if (IS_ERR(phy))
> 
>    And even before the mentioned commit the right check should have
> been IS_ERR_OR_NULL().

Yes, quite true.

> Thanks for finding/fixing this. Too bad I'll have to respin my USB
> patches now... :-)
> 
> WBR, Sergei
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c
index 9105285..b9594e9 100644
--- a/arch/arm/mach-shmobile/board-marzen.c
+++ b/arch/arm/mach-shmobile/board-marzen.c
@@ -212,8 +212,8 @@  static struct platform_device *marzen_devices[] __initdata = {
 static struct usb_phy *phy;
 static int usb_power_on(struct platform_device *pdev)
 {
-	if (!phy)
-		return -EIO;
+	if (IS_ERR(phy))
+		return PTR_ERR(phy);
 
 	pm_runtime_enable(&pdev->dev);
 	pm_runtime_get_sync(&pdev->dev);
@@ -225,7 +225,7 @@  static int usb_power_on(struct platform_device *pdev)
 
 static void usb_power_off(struct platform_device *pdev)
 {
-	if (!phy)
+	if (IS_ERR(phy))
 		return;
 
 	usb_phy_shutdown(phy);