Move source tree closer to the 2.6.32.17 mainline
/drivers/usb/host/ehci-hcd.c
blob:5aeabd8bda513a09388d96a3b2922d90d736903c -> blob:8198fc0e4ac6b6592585bb17addd2698900d1535
--- drivers/usb/host/ehci-hcd.c
+++ drivers/usb/host/ehci-hcd.c
@@ -1008,10 +1008,11 @@ rescan:
tmp && tmp != qh;
tmp = tmp->qh_next.qh)
continue;
- /* periodic qh self-unlinks on empty */
- if (!tmp)
- goto nogood;
- unlink_async (ehci, qh);
+ /* periodic qh self-unlinks on empty, and a COMPLETING qh
+ * may already be unlinked.
+ */
+ if (tmp)
+ unlink_async(ehci, qh);
/* FALL THROUGH */
case QH_STATE_UNLINK: /* wait for hw to finish? */
case QH_STATE_UNLINK_WAIT:
@@ -1028,7 +1029,6 @@ idle_timeout:
}
/* else FALL THROUGH */
default:
-nogood:
/* caller was supposed to have unlinked any requests;
* that's not our job. just leak this memory.
*/