summaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/isp1760-hcd.c
diff options
context:
space:
mode:
authorMichael Grzeschik2012-04-18 09:58:23 +0200
committerGreg Kroah-Hartman2012-04-18 22:51:19 +0200
commit8cb2268001f9553f9ff83416ce3f009c4ab1e089 (patch)
treef8767568c6cc3d66e5c960bc34e539c96fd567e2 /drivers/usb/host/isp1760-hcd.c
parentisp1760-hcd: don't confuse parsers on kmem_cache_create (diff)
downloadkernel-qcow2-linux-8cb2268001f9553f9ff83416ce3f009c4ab1e089.tar.gz
kernel-qcow2-linux-8cb2268001f9553f9ff83416ce3f009c4ab1e089.tar.xz
kernel-qcow2-linux-8cb2268001f9553f9ff83416ce3f009c4ab1e089.zip
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>
Diffstat (limited to 'drivers/usb/host/isp1760-hcd.c')
-rw-r--r--drivers/usb/host/isp1760-hcd.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/host/isp1760-hcd.c b/drivers/usb/host/isp1760-hcd.c
index 02198ee56a1f..4a378d38b954 100644
--- a/drivers/usb/host/isp1760-hcd.c
+++ b/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;
}