aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVivek Gautam <gautam.vivek@samsung.com>2014-04-10 06:28:02 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-04-16 16:59:13 -0400
commite155b5b8d2d42455d3a94c2460c287e97184ec61 (patch)
tree850e0bdea19f102a4d43da2302210b577a8fa4dc
parentd72175103f25783b0504f864a4f381621a789ca2 (diff)
usb: ehci-platform: Return immediately from suspend if ehci_suspend fails
Patch 'b8efdaf USB: EHCI: add check for wakeup/suspend race' adds a check for possible race between suspend and wakeup interrupt, and thereby it returns -EBUSY as error code if there's a wakeup interrupt. So the platform host controller should not proceed further with its suspend callback, rather should return immediately to avoid powering down the essential things, like phy. Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Cc: Hauke Mehrtens <hauke@hauke-m.de> Cc: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/host/ehci-platform.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c
index b3a0e11073aa..c7dd93aad20c 100644
--- a/drivers/usb/host/ehci-platform.c
+++ b/drivers/usb/host/ehci-platform.c
@@ -303,6 +303,8 @@ static int ehci_platform_suspend(struct device *dev)
303 int ret; 303 int ret;
304 304
305 ret = ehci_suspend(hcd, do_wakeup); 305 ret = ehci_suspend(hcd, do_wakeup);
306 if (ret)
307 return ret;
306 308
307 if (pdata->power_suspend) 309 if (pdata->power_suspend)
308 pdata->power_suspend(pdev); 310 pdata->power_suspend(pdev);