xhci: Bigendian fix for skip_isoc_td()
authorMatt Evans <matt@ozlabs.org>
Wed, 1 Jun 2011 03:01:01 +0000 (13:01 +1000)
committerSarah Sharp <sarah.a.sharp@linux.intel.com>
Wed, 1 Jun 2011 23:26:48 +0000 (16:26 -0700)
Commit 926008c9386dde09b015753b6681c502177baa30 "USB: xhci: simplify logic
of skipping missed isoc TDs" added a small endian bug.  This patch
fixes skip_isoc_td() to read the DMA pointer correctly.

Signed-off-by: Matt Evans <matt@ozlabs.org>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
drivers/usb/host/xhci-ring.c

index cc1485bfed385dc7df6b51a7de70500e453776ef..800f417c730900271a98ccf0410d7617afc3aa20 100644 (file)
@@ -1782,7 +1782,7 @@ static int skip_isoc_td(struct xhci_hcd *xhci, struct xhci_td *td,
        struct usb_iso_packet_descriptor *frame;
        int idx;
 
-       ep_ring = xhci_dma_to_transfer_ring(ep, event->buffer);
+       ep_ring = xhci_dma_to_transfer_ring(ep, le64_to_cpu(event->buffer));
        urb_priv = td->urb->hcpriv;
        idx = urb_priv->td_cnt;
        frame = &td->urb->iso_frame_desc[idx];