diff options
Diffstat (limited to 'drivers/usb/host/ehci-sched.c')
-rw-r--r-- | drivers/usb/host/ehci-sched.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c index e7a2dbd27b1e..c833febf8df0 100644 --- a/drivers/usb/host/ehci-sched.c +++ b/drivers/usb/host/ehci-sched.c | |||
@@ -620,17 +620,13 @@ static void start_unlink_intr(struct ehci_hcd *ehci, struct ehci_qh *qh) | |||
620 | qh->unlink_cycle = ehci->intr_unlink_cycle; | 620 | qh->unlink_cycle = ehci->intr_unlink_cycle; |
621 | 621 | ||
622 | /* New entries go at the end of the intr_unlink list */ | 622 | /* New entries go at the end of the intr_unlink list */ |
623 | if (ehci->intr_unlink) | 623 | list_add_tail(&qh->unlink_node, &ehci->intr_unlink); |
624 | ehci->intr_unlink_last->unlink_next = qh; | ||
625 | else | ||
626 | ehci->intr_unlink = qh; | ||
627 | ehci->intr_unlink_last = qh; | ||
628 | 624 | ||
629 | if (ehci->intr_unlinking) | 625 | if (ehci->intr_unlinking) |
630 | ; /* Avoid recursive calls */ | 626 | ; /* Avoid recursive calls */ |
631 | else if (ehci->rh_state < EHCI_RH_RUNNING) | 627 | else if (ehci->rh_state < EHCI_RH_RUNNING) |
632 | ehci_handle_intr_unlinks(ehci); | 628 | ehci_handle_intr_unlinks(ehci); |
633 | else if (ehci->intr_unlink == qh) { | 629 | else if (ehci->intr_unlink.next == &qh->unlink_node) { |
634 | ehci_enable_event(ehci, EHCI_HRTIMER_UNLINK_INTR, true); | 630 | ehci_enable_event(ehci, EHCI_HRTIMER_UNLINK_INTR, true); |
635 | ++ehci->intr_unlink_cycle; | 631 | ++ehci->intr_unlink_cycle; |
636 | } | 632 | } |