diff options
author | Vipin Mehta <vmehta@atheros.com> | 2011-02-18 13:13:09 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-02-18 13:28:51 -0800 |
commit | 774c1fe2fe9f14c657deb63705ef044f7af9a6cb (patch) | |
tree | ddf0b8a46b37bc4122399fcb08e9319d827c548f /drivers/staging/ath6kl/htc2 | |
parent | fb9b548717444c82eb2d196c91729421ee68d4be (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>
Diffstat (limited to 'drivers/staging/ath6kl/htc2')
-rw-r--r-- | drivers/staging/ath6kl/htc2/AR6000/ar6k.c | 9 | ||||
-rw-r--r-- | drivers/staging/ath6kl/htc2/AR6000/ar6k.h | 2 | ||||
-rw-r--r-- | drivers/staging/ath6kl/htc2/htc.c | 2 |
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")); |