summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorThomas Pugliese <thomas.pugliese@gmail.com>2013-09-26 23:08:15 +0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-09-27 03:31:37 +0400
commitd5b5c9f228bf15d134b0ac8d493b119417f5f9e9 (patch)
treeb7010bb574453c96d874f1ba03d72bd4d94de063 /drivers/usb
parentffd6d17ddb1bea8267ee3edf6032fc6aa777e832 (diff)
downloadlinux-d5b5c9f228bf15d134b0ac8d493b119417f5f9e9.tar.xz
usb: wusbcore: clean up the sg list that was created for out transfers
Clean up the SG list after transfer completetion for out transfers if one was created by the HWA. Signed-off-by: Thomas Pugliese <thomas.pugliese@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/wusbcore/wa-xfer.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/wusbcore/wa-xfer.c b/drivers/usb/wusbcore/wa-xfer.c
index f614fb1ed77f..61b0597c399b 100644
--- a/drivers/usb/wusbcore/wa-xfer.c
+++ b/drivers/usb/wusbcore/wa-xfer.c
@@ -520,6 +520,10 @@ static void wa_seg_dto_cb(struct urb *urb)
unsigned rpipe_ready = 0;
u8 done = 0;
+ /* free the sg if it was used. */
+ kfree(urb->sg);
+ urb->sg = NULL;
+
switch (urb->status) {
case 0:
spin_lock_irqsave(&xfer->lock, flags);