Since vfree() checks for null pointer, there is no need to check is again in MEM_VFree(). This patch also reorganizes the function to make it more readable.
Signed-off-by: Ameya Palande <ameya.pala...@nokia.com> --- drivers/dsp/bridge/services/mem.c | 42 +++++++++++++++---------------------- 1 files changed, 17 insertions(+), 25 deletions(-) diff --git a/drivers/dsp/bridge/services/mem.c b/drivers/dsp/bridge/services/mem.c index dfe352d..c2887b3 100644 --- a/drivers/dsp/bridge/services/mem.c +++ b/drivers/dsp/bridge/services/mem.c @@ -456,35 +456,27 @@ void MEM_FlushCache(void *pMemBuf, u32 cBytes, s32 FlushType) void MEM_VFree(IN void *pMemBuf) { #ifdef MEM_CHECK - struct memInfo *pMem = (void *)((u32)pMemBuf - sizeof(struct memInfo)); + struct memInfo *pMem; #endif - - DBC_Require(pMemBuf != NULL); - GT_1trace(MEM_debugMask, GT_ENTER, "MEM_VFree: pMemBufs 0x%x\n", - pMemBuf); - - if (pMemBuf) { -#ifndef MEM_CHECK - vfree(pMemBuf); + pMemBuf); +#ifdef MEM_CHECK + if (!pMemBuf) { + GT_1trace(MEM_debugMask, GT_7CLASS, + "Invalid allocation or Buffer underflow\n"); + return; + } + pMem = (void *)((u32)pMemBuf - sizeof(struct memInfo)); + if (pMem && pMem->dwSignature == memInfoSign) { + spin_lock(&mMan.lock); + MLST_RemoveElem(&mMan.lst, (struct list_head *)pMem); + spin_unlock(&mMan.lock); + pMem->dwSignature = 0; + vfree(pMem); + } #else - if (pMem) { - if (pMem->dwSignature == memInfoSign) { - spin_lock(&mMan.lock); - MLST_RemoveElem(&mMan.lst, - (struct list_head *)pMem); - spin_unlock(&mMan.lock); - pMem->dwSignature = 0; - vfree(pMem); - } else { - GT_1trace(MEM_debugMask, GT_7CLASS, - "Invalid allocation or " - "Buffer underflow at %x\n", - (u32) pMem + sizeof(struct memInfo)); - } - } + vfree(pMemBuf); #endif - } } /* -- 1.6.3.3 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html