diff options
Diffstat (limited to 'drivers/usb/host/uhci-hcd.c')
-rw-r--r-- | drivers/usb/host/uhci-hcd.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c index 4db17f75f4f1..ec987897b8ed 100644 --- a/drivers/usb/host/uhci-hcd.c +++ b/drivers/usb/host/uhci-hcd.c | |||
@@ -378,7 +378,6 @@ static irqreturn_t uhci_irq(struct usb_hcd *hcd) | |||
378 | { | 378 | { |
379 | struct uhci_hcd *uhci = hcd_to_uhci(hcd); | 379 | struct uhci_hcd *uhci = hcd_to_uhci(hcd); |
380 | unsigned short status; | 380 | unsigned short status; |
381 | unsigned long flags; | ||
382 | 381 | ||
383 | /* | 382 | /* |
384 | * Read the interrupt status, and write it back to clear the | 383 | * Read the interrupt status, and write it back to clear the |
@@ -398,7 +397,7 @@ static irqreturn_t uhci_irq(struct usb_hcd *hcd) | |||
398 | dev_err(uhci_dev(uhci), "host controller process " | 397 | dev_err(uhci_dev(uhci), "host controller process " |
399 | "error, something bad happened!\n"); | 398 | "error, something bad happened!\n"); |
400 | if (status & USBSTS_HCH) { | 399 | if (status & USBSTS_HCH) { |
401 | spin_lock_irqsave(&uhci->lock, flags); | 400 | spin_lock(&uhci->lock); |
402 | if (uhci->rh_state >= UHCI_RH_RUNNING) { | 401 | if (uhci->rh_state >= UHCI_RH_RUNNING) { |
403 | dev_err(uhci_dev(uhci), | 402 | dev_err(uhci_dev(uhci), |
404 | "host controller halted, " | 403 | "host controller halted, " |
@@ -415,16 +414,16 @@ static irqreturn_t uhci_irq(struct usb_hcd *hcd) | |||
415 | * pending unlinks */ | 414 | * pending unlinks */ |
416 | mod_timer(&hcd->rh_timer, jiffies); | 415 | mod_timer(&hcd->rh_timer, jiffies); |
417 | } | 416 | } |
418 | spin_unlock_irqrestore(&uhci->lock, flags); | 417 | spin_unlock(&uhci->lock); |
419 | } | 418 | } |
420 | } | 419 | } |
421 | 420 | ||
422 | if (status & USBSTS_RD) | 421 | if (status & USBSTS_RD) |
423 | usb_hcd_poll_rh_status(hcd); | 422 | usb_hcd_poll_rh_status(hcd); |
424 | else { | 423 | else { |
425 | spin_lock_irqsave(&uhci->lock, flags); | 424 | spin_lock(&uhci->lock); |
426 | uhci_scan_schedule(uhci); | 425 | uhci_scan_schedule(uhci); |
427 | spin_unlock_irqrestore(&uhci->lock, flags); | 426 | spin_unlock(&uhci->lock); |
428 | } | 427 | } |
429 | 428 | ||
430 | return IRQ_HANDLED; | 429 | return IRQ_HANDLED; |