summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorWu Zhangjin <wuzj@lemote.com>2010-01-04 11:33:02 +0800
committerClark Williams <williams@redhat.com>2012-02-15 10:32:41 -0600
commit6e9a58f0d2f87208b3c665ed13d0e7788e4f0f92 (patch)
tree2d9a8a5a25df2ad0f5fb09c4a82b8fce050ea402 /drivers
parentb690823816b06faa493de84fe0fb55cae7e8de02 (diff)
USB: Fix the mouse problem when copying large amounts of data
When copying large amounts of data between the USB storage devices and the hard disk, the USB mouse will not work, this patch fixes it. [NOTE: This problem have been found in the Loongson family machines, not sure whether it is producible on other platforms] Signed-off-by: Hu Hongbing <huhb@lemote.com> Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/host/ohci-hcd.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index b2639191549e..d4b05d1106af 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -830,9 +830,13 @@ static irqreturn_t ohci_irq (struct usb_hcd *hcd)
}
if (ints & OHCI_INTR_WDH) {
- spin_lock (&ohci->lock);
- dl_done_list (ohci);
- spin_unlock (&ohci->lock);
+ if (ohci->hcca->done_head == 0) {
+ ints &= ~OHCI_INTR_WDH;
+ } else {
+ spin_lock (&ohci->lock);
+ dl_done_list (ohci);
+ spin_unlock (&ohci->lock);
+ }
}
if (quirk_zfmicro(ohci) && (ints & OHCI_INTR_SF)) {