EHCI, UHCI and OHCI USB host drivers are not consistent when returining error values from their _suspend functions, in case that the device is not in suspended state. This could confuse users, so let's all three of them return -EBUSY. Signed-off-by: Jiri Kosina Submitted to akpm/linux-usb/maintainers on 19.9.2006 --- linux-2.6.18-rc6-mm2.orig/drivers/usb/host/ehci-pci.c 2006-09-14 16:20:48.000000000 +0200 +++ linux-2.6.18-rc6-mm2/drivers/usb/host/ehci-pci.c 2006-09-19 03:20:22.000000000 +0200 @@ -232,7 +232,7 @@ static int ehci_pci_suspend(struct usb_h */ spin_lock_irqsave (&ehci->lock, flags); if (hcd->state != HC_STATE_SUSPENDED) { - rc = -EINVAL; + rc = -EBUSY; goto bail; } writel (0, &ehci->regs->intr_enable); --- linux-2.6.18-rc6-mm2.orig/drivers/usb/host/ohci-pci.c 2006-09-14 16:20:48.000000000 +0200 +++ linux-2.6.18-rc6-mm2/drivers/usb/host/ohci-pci.c 2006-09-19 03:36:35.000000000 +0200 @@ -130,7 +130,7 @@ static int ohci_pci_suspend (struct usb_ */ spin_lock_irqsave (&ohci->lock, flags); if (hcd->state != HC_STATE_SUSPENDED) { - rc = -EINVAL; + rc = -EBUSY; goto bail; } ohci_writel(ohci, OHCI_INTR_MIE, &ohci->regs->intrdisable);