xhci: don't use the same variable for stopped and halted rings current TD
[pandora-kernel.git] / drivers / usb / host / xhci.c
index 0ea7e12..5be1bff 100644 (file)
@@ -2912,10 +2912,11 @@ static void xhci_setup_input_ctx_for_quirk(struct xhci_hcd *xhci,
 }
 
 void xhci_cleanup_stalled_ring(struct xhci_hcd *xhci,
-               struct usb_device *udev, unsigned int ep_index)
+                       unsigned int ep_index, struct xhci_td *td)
 {
        struct xhci_dequeue_state deq_state;
        struct xhci_virt_ep *ep;
+       struct usb_device *udev = td->urb->dev;
 
        xhci_dbg_trace(xhci, trace_xhci_dbg_reset_ep,
                        "Cleaning up stalled endpoint ring");
@@ -2924,8 +2925,7 @@ void xhci_cleanup_stalled_ring(struct xhci_hcd *xhci,
         * or it will attempt to resend it on the next doorbell ring.
         */
        xhci_find_new_dequeue_state(xhci, udev->slot_id,
-                       ep_index, ep->stopped_stream, ep->stopped_td,
-                       &deq_state);
+                       ep_index, ep->stopped_stream, td, &deq_state);
 
        if (!deq_state.new_deq_ptr || !deq_state.new_deq_seg)
                return;