summaryrefslogtreecommitdiffstats
path: root/drivers/usb/host
diff options
context:
space:
mode:
authorSarah Sharp2009-08-27 23:36:14 +0200
committerGreg Kroah-Hartman2009-09-23 15:46:18 +0200
commit9191eee7b8a0e18c07c06d6da502706805cab6d2 (patch)
treea182a6397331ef8ccbeb1d549f5f3e638d256fff /drivers/usb/host
parentUSB: xhci: Handle babbling endpoints correctly. (diff)
downloadkernel-qcow2-linux-9191eee7b8a0e18c07c06d6da502706805cab6d2.tar.gz
kernel-qcow2-linux-9191eee7b8a0e18c07c06d6da502706805cab6d2.tar.xz
kernel-qcow2-linux-9191eee7b8a0e18c07c06d6da502706805cab6d2.zip
USB: xhci: Don't touch xhci_td after it's freed.
On a successful transfer, urb->td is freed before the URB is ready to be given back to the driver. Don't touch urb->td after it's freed. This bug would have only shown up when xHCI debugging was turned on, and the freed memory was quickly reused for something else. Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/host')
-rw-r--r--drivers/usb/host/xhci-ring.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 2eadf0693862..4142c04b5adf 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -1193,7 +1193,7 @@ cleanup:
if (urb) {
usb_hcd_unlink_urb_from_ep(xhci_to_hcd(xhci), urb);
xhci_dbg(xhci, "Giveback URB %p, len = %d, status = %d\n",
- urb, td->urb->actual_length, status);
+ urb, urb->actual_length, status);
spin_unlock(&xhci->lock);
usb_hcd_giveback_urb(xhci_to_hcd(xhci), urb, status);
spin_lock(&xhci->lock);