Sfoglia il codice sorgente

usb: ehci-sh: Fix up fault in shutdown path.

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>
Paul Mundt 14 anni fa
parent
commit
c1e0774d74
1 ha cambiato i file con 10 aggiunte e 1 eliminazioni
  1. 10 1
      drivers/usb/host/ehci-sh.c

+ 10 - 1
drivers/usb/host/ehci-sh.c

@@ -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,