Commit 077f5f1c authored by Alan Stern's avatar Alan Stern Committed by Greg Kroah-Hartman

USB: EHCI: fix regression related to qh_refresh()

This patch adds some code that inadvertently got left out of commit
c1fdb68e (USB: EHCI: changes related
to qh_refresh()).  The calls to qh_refresh() and qh_link_periodic()
were taken out of qh_schedule(); therefore it is necessary to call
these routines manually after calling qh_schedule().
Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Reported-and-tested-by: default avatarOleksij Rempel <linux@rempel-privat.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent e2e2f0ea
...@@ -646,6 +646,10 @@ static void end_unlink_intr(struct ehci_hcd *ehci, struct ehci_qh *qh) ...@@ -646,6 +646,10 @@ static void end_unlink_intr(struct ehci_hcd *ehci, struct ehci_qh *qh)
/* reschedule QH iff another request is queued */ /* reschedule QH iff another request is queued */
if (!list_empty(&qh->qtd_list) && ehci->rh_state == EHCI_RH_RUNNING) { if (!list_empty(&qh->qtd_list) && ehci->rh_state == EHCI_RH_RUNNING) {
rc = qh_schedule(ehci, qh); rc = qh_schedule(ehci, qh);
if (rc == 0) {
qh_refresh(ehci, qh);
qh_link_periodic(ehci, qh);
}
/* An error here likely indicates handshake failure /* An error here likely indicates handshake failure
* or no space left in the schedule. Neither fault * or no space left in the schedule. Neither fault
...@@ -653,10 +657,11 @@ static void end_unlink_intr(struct ehci_hcd *ehci, struct ehci_qh *qh) ...@@ -653,10 +657,11 @@ static void end_unlink_intr(struct ehci_hcd *ehci, struct ehci_qh *qh)
* *
* FIXME kill the now-dysfunctional queued urbs * FIXME kill the now-dysfunctional queued urbs
*/ */
if (rc != 0) else {
ehci_err(ehci, "can't reschedule qh %p, err %d\n", ehci_err(ehci, "can't reschedule qh %p, err %d\n",
qh, rc); qh, rc);
} }
}
/* maybe turn off periodic schedule */ /* maybe turn off periodic schedule */
--ehci->intr_count; --ehci->intr_count;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment