From: Alan Stern Date: Thu, 31 Aug 2006 18:18:39 +0000 (-0400) Subject: uhci-hcd: fix list access bug X-Git-Tag: v2.6.18-rc6~5^2 X-Git-Url: http://ftp.safe.ca/?a=commitdiff_plain;h=db59b464f8708cdba857f16b183cff0b7466d6b5;p=safe%2Fjmp%2Flinux-2.6 uhci-hcd: fix list access bug When skipping to the last TD of an URB, go to the _last_ entry in the list instead of the _first_ entry (as780). This fixes Bugzilla #6747 and possibly others. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/host/uhci-q.c b/drivers/usb/host/uhci-q.c index 026dad0..431e8f3 100644 --- a/drivers/usb/host/uhci-q.c +++ b/drivers/usb/host/uhci-q.c @@ -372,7 +372,7 @@ static void uhci_fixup_toggles(struct uhci_qh *qh, int skip_first) * need to change any toggles in this URB */ td = list_entry(urbp->td_list.next, struct uhci_td, list); if (toggle > 1 || uhci_toggle(td_token(td)) == toggle) { - td = list_entry(urbp->td_list.next, struct uhci_td, + td = list_entry(urbp->td_list.prev, struct uhci_td, list); toggle = uhci_toggle(td_token(td)) ^ 1;