Преглед изворни кода

isp1760-hcd: move dequeued qtds to the front in qh

Make sure that dequeued urbs get handled first
by collect_qtds. To achieve that we better move them
up to the head in the qh list.

This for instance fixes hanging serial devices, which wait
for dequeued urbs to properly close their device node.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Michael Grzeschik пре 13 година
родитељ
комит
8cb2268001
1 измењених фајлова са 1 додато и 0 уклоњено
  1. 1 0
      drivers/usb/host/isp1760-hcd.c

+ 1 - 0
drivers/usb/host/isp1760-hcd.c

@@ -1683,6 +1683,7 @@ static int isp1760_urb_dequeue(struct usb_hcd *hcd, struct urb *urb,
 	list_for_each_entry(qtd, &qh->qtd_list, qtd_list)
 		if (qtd->urb == urb) {
 			dequeue_urb_from_qtd(hcd, qh, qtd);
+			list_move(&qtd->qtd_list, &qh->qtd_list);
 			break;
 		}