usb: renesas_usbhs: fixup error processing on probe/remove
The error processing order was wrong. This patch modify it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
c786e09c35
commit
97f93227e6
@@ -321,11 +321,11 @@ static int __devinit usbhs_probe(struct platform_device *pdev)
|
|||||||
/* call pipe and module init */
|
/* call pipe and module init */
|
||||||
ret = usbhs_pipe_probe(priv);
|
ret = usbhs_pipe_probe(priv);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto probe_end_mod_exit;
|
goto probe_end_iounmap;
|
||||||
|
|
||||||
ret = usbhs_mod_probe(priv);
|
ret = usbhs_mod_probe(priv);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto probe_end_iounmap;
|
goto probe_end_pipe_exit;
|
||||||
|
|
||||||
/* dev_set_drvdata should be called after usbhs_mod_init */
|
/* dev_set_drvdata should be called after usbhs_mod_init */
|
||||||
dev_set_drvdata(&pdev->dev, priv);
|
dev_set_drvdata(&pdev->dev, priv);
|
||||||
@@ -346,7 +346,7 @@ static int __devinit usbhs_probe(struct platform_device *pdev)
|
|||||||
ret = usbhs_platform_call(priv, hardware_init, pdev);
|
ret = usbhs_platform_call(priv, hardware_init, pdev);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(&pdev->dev, "platform prove failed.\n");
|
dev_err(&pdev->dev, "platform prove failed.\n");
|
||||||
goto probe_end_pipe_exit;
|
goto probe_end_mod_exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* reset phy for connection */
|
/* reset phy for connection */
|
||||||
@@ -372,10 +372,10 @@ static int __devinit usbhs_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
probe_end_call_remove:
|
probe_end_call_remove:
|
||||||
usbhs_platform_call(priv, hardware_exit, pdev);
|
usbhs_platform_call(priv, hardware_exit, pdev);
|
||||||
probe_end_pipe_exit:
|
|
||||||
usbhs_pipe_remove(priv);
|
|
||||||
probe_end_mod_exit:
|
probe_end_mod_exit:
|
||||||
usbhs_mod_remove(priv);
|
usbhs_mod_remove(priv);
|
||||||
|
probe_end_pipe_exit:
|
||||||
|
usbhs_pipe_remove(priv);
|
||||||
probe_end_iounmap:
|
probe_end_iounmap:
|
||||||
iounmap(priv->base);
|
iounmap(priv->base);
|
||||||
probe_end_kfree:
|
probe_end_kfree:
|
||||||
@@ -403,8 +403,8 @@ static int __devexit usbhs_remove(struct platform_device *pdev)
|
|||||||
pm_runtime_disable(&pdev->dev);
|
pm_runtime_disable(&pdev->dev);
|
||||||
|
|
||||||
usbhs_platform_call(priv, hardware_exit, pdev);
|
usbhs_platform_call(priv, hardware_exit, pdev);
|
||||||
usbhs_pipe_remove(priv);
|
|
||||||
usbhs_mod_remove(priv);
|
usbhs_mod_remove(priv);
|
||||||
|
usbhs_pipe_remove(priv);
|
||||||
iounmap(priv->base);
|
iounmap(priv->base);
|
||||||
kfree(priv);
|
kfree(priv);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user