usb: ehci-sh: Fix up fault in shutdown path.
authorPaul Mundt <lethal@linux-sh.org>
Fri, 26 Nov 2010 07:43:38 +0000 (16:43 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Fri, 26 Nov 2010 07:43:38 +0000 (16:43 +0900)
We can't use the generic usb_hcd_platform_shutdown helper on account of
the fact we don't stash the hcd pointer in the driver data, so we provide
our own shutdown handler.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
drivers/usb/host/ehci-sh.c

index 430b72e637fd91d435d543b2e2abfa4f0eef2dd9..9d3a29f8ced537d38aae3e5776da6c279262b580 100644 (file)
@@ -219,10 +219,19 @@ static int __exit ehci_hcd_sh_remove(struct platform_device *pdev)
        return 0;
 }
 
+static void ehci_hcd_sh_shutdown(struct platform_device *pdev)
+{
+       struct ehci_sh_priv *priv = platform_get_drvdata(pdev);
+       struct usb_hcd *hcd = priv->hcd;
+
+       if (hcd->driver->shutdown)
+               hcd->driver->shutdown(hcd);
+}
+
 static struct platform_driver ehci_hcd_sh_driver = {
        .probe          = ehci_hcd_sh_probe,
        .remove         = __exit_p(ehci_hcd_sh_remove),
-       .shutdown       = usb_hcd_platform_shutdown,
+       .shutdown       = ehci_hcd_sh_shutdown,
        .driver         = {
                .name   = "sh_ehci",
                .owner  = THIS_MODULE,