Patchwork [3.5.y.z,extended,stable] Patch "usb: chipidea: udc: fix memory leak in _ep_nuke" has been added to staging queue

mail settings
Submitter Luis Henriques
Date May 7, 2013, 10:33 a.m.
Message ID <>
Download mbox | patch
Permalink /patch/242146/
State New
Headers show


Luis Henriques - May 7, 2013, 10:33 a.m.
This is a note to let you know that I have just added a patch titled

    usb: chipidea: udc: fix memory leak in _ep_nuke

to the linux-3.5.y-queue branch of the 3.5.y.z extended stable tree 
which can be found at:;a=shortlog;h=refs/heads/linux-3.5.y-queue

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.5.y.z tree, see



From 30f67e0c670c411cc1b8882793d1e425cd0431d0 Mon Sep 17 00:00:00 2001
From: Michael Grzeschik <>
Date: Thu, 4 Apr 2013 13:13:47 +0300
Subject: [PATCH] usb: chipidea: udc: fix memory leak in _ep_nuke

commit 7ca2cd291fd84ae499390f227a255ccba2780a81 upstream.

In hardware_enqueue code adds one extra td with dma_pool_alloc if
mReq-> is true. When _ep_nuke will be called for that endpoint,
dma_pool_free will not be called to free that memory again. That patch
fixes this.

Signed-off-by: Michael Grzeschik <>
Signed-off-by: Alexander Shishkin <>
Signed-off-by: Greg Kroah-Hartman <>
Signed-off-by: Luis Henriques <>
 drivers/usb/chipidea/udc.c | 6 ++++++
 1 file changed, 6 insertions(+)



diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index 60bcf1c..113b4f1 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -541,6 +541,12 @@  __acquires(mEp->lock)
 		struct ci13xxx_req *mReq = \
 				   struct ci13xxx_req, queue);
+		if (mReq->zptr) {
+			dma_pool_free(mEp->td_pool, mReq->zptr, mReq->zdma);
+			mReq->zptr = NULL;
+		}
 		mReq->req.status = -ESHUTDOWN;