diff options
Diffstat (limited to 'drivers/usb/host/ohci-exynos.c')
-rw-r--r-- | drivers/usb/host/ohci-exynos.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/usb/host/ohci-exynos.c b/drivers/usb/host/ohci-exynos.c index 55aa35aa3d7b..37bb20ebb6fc 100644 --- a/drivers/usb/host/ohci-exynos.c +++ b/drivers/usb/host/ohci-exynos.c | |||
@@ -212,12 +212,10 @@ static int exynos_ohci_suspend(struct device *dev) | |||
212 | * mark HW unaccessible, bail out if RH has been resumed. Use | 212 | * mark HW unaccessible, bail out if RH has been resumed. Use |
213 | * the spinlock to properly synchronize with possible pending | 213 | * the spinlock to properly synchronize with possible pending |
214 | * RH suspend or resume activity. | 214 | * RH suspend or resume activity. |
215 | * | ||
216 | * This is still racy as hcd->state is manipulated outside of | ||
217 | * any locks =P But that will be a different fix. | ||
218 | */ | 215 | */ |
219 | spin_lock_irqsave(&ohci->lock, flags); | 216 | spin_lock_irqsave(&ohci->lock, flags); |
220 | if (hcd->state != HC_STATE_SUSPENDED && hcd->state != HC_STATE_HALT) { | 217 | if (ohci->rh_state != OHCI_RH_SUSPENDED && |
218 | ohci->rh_state != OHCI_RH_HALTED) { | ||
221 | rc = -EINVAL; | 219 | rc = -EINVAL; |
222 | goto fail; | 220 | goto fail; |
223 | } | 221 | } |