summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVipin Mehta <vmehta@atheros.com>2011-02-18 13:13:09 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2011-02-18 13:28:51 -0800
commit774c1fe2fe9f14c657deb63705ef044f7af9a6cb (patch)
treeddf0b8a46b37bc4122399fcb08e9319d827c548f
parentfb9b548717444c82eb2d196c91729421ee68d4be (diff)
staging: ath6kl: Fixing a memory leak
Virtual Scatter Gather Lists not getting freed during the HTCStop(). The patch adds some clean up code in the code path. Signed-off-by: Vipin Mehta <vmehta@atheros.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/ath6kl/htc2/AR6000/ar6k.c9
-rw-r--r--drivers/staging/ath6kl/htc2/AR6000/ar6k.h2
-rw-r--r--drivers/staging/ath6kl/htc2/htc.c2
3 files changed, 13 insertions, 0 deletions
diff --git a/drivers/staging/ath6kl/htc2/AR6000/ar6k.c b/drivers/staging/ath6kl/htc2/AR6000/ar6k.c
index 6083231cdbb0..ff0480b5254b 100644
--- a/drivers/staging/ath6kl/htc2/AR6000/ar6k.c
+++ b/drivers/staging/ath6kl/htc2/AR6000/ar6k.c
@@ -810,6 +810,15 @@ static int DevSetupVirtualScatterSupport(AR6K_DEVICE *pDev)
return status;
}
+int DevCleanupMsgBundling(AR6K_DEVICE *pDev)
+{
+ if(NULL != pDev)
+ {
+ DevCleanupVirtualScatterSupport(pDev);
+ }
+
+ return 0;
+}
int DevSetupMsgBundling(AR6K_DEVICE *pDev, int MaxMsgsPerTransfer)
{
diff --git a/drivers/staging/ath6kl/htc2/AR6000/ar6k.h b/drivers/staging/ath6kl/htc2/AR6000/ar6k.h
index d3b6b309dc2a..19d8e706057d 100644
--- a/drivers/staging/ath6kl/htc2/AR6000/ar6k.h
+++ b/drivers/staging/ath6kl/htc2/AR6000/ar6k.h
@@ -297,6 +297,8 @@ static INLINE int DEV_PREPARE_SCATTER_OPERATION(HIF_SCATTER_REQ *pReq) {
int DevSetupMsgBundling(AR6K_DEVICE *pDev, int MaxMsgsPerTransfer);
+
+int DevCleanupMsgBundling(AR6K_DEVICE *pDev);
#define DEV_GET_MAX_MSG_PER_BUNDLE(pDev) (pDev)->HifScatterInfo.MaxScatterEntries
#define DEV_GET_MAX_BUNDLE_LENGTH(pDev) (pDev)->HifScatterInfo.MaxTransferSizePerScatterReq
diff --git a/drivers/staging/ath6kl/htc2/htc.c b/drivers/staging/ath6kl/htc2/htc.c
index 684eca9bd022..e7adc45324af 100644
--- a/drivers/staging/ath6kl/htc2/htc.c
+++ b/drivers/staging/ath6kl/htc2/htc.c
@@ -486,6 +486,8 @@ void HTCStop(HTC_HANDLE HTCHandle)
/* flush all recv buffers */
HTCFlushRecvBuffers(target);
+ DevCleanupMsgBundling(&target->Device);
+
ResetEndpointStates(target);
AR_DEBUG_PRINTF(ATH_DEBUG_TRC, ("-HTCStop \n"));