diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-11-26 16:43:38 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-11-26 16:43:38 +0900 |
commit | c1e0774d74481fdc3082d2096a99a3aa411a71f1 (patch) | |
tree | 14bffea2222c5d01bd77c7dc7dd334e900a96bd4 | |
parent | 8b32a92b600e2728c5c438a748a4dc3132c98ef3 (diff) | |
download | op-kernel-dev-c1e0774d74481fdc3082d2096a99a3aa411a71f1.zip op-kernel-dev-c1e0774d74481fdc3082d2096a99a3aa411a71f1.tar.gz |
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>
-rw-r--r-- | drivers/usb/host/ehci-sh.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/usb/host/ehci-sh.c b/drivers/usb/host/ehci-sh.c index 430b72e..9d3a29f 100644 --- a/drivers/usb/host/ehci-sh.c +++ b/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, |