kmemleak offeres the same functionality as custom MEM_CHECK
mechanism, so get rid of MEM_CHECK.

Signed-off-by: Ameya Palande <[email protected]>
---
 drivers/dsp/bridge/services/mem.c |  212 +------------------------------------
 1 files changed, 2 insertions(+), 210 deletions(-)

diff --git a/drivers/dsp/bridge/services/mem.c 
b/drivers/dsp/bridge/services/mem.c
index cee646a..c4b1fe1 100644
--- a/drivers/dsp/bridge/services/mem.c
+++ b/drivers/dsp/bridge/services/mem.c
@@ -34,11 +34,6 @@
 
 /*  ----------------------------------- Defines */
 #define MEM_512MB   0x1fffffff
-#define memInfoSign 0x464E494D /* "MINF" (in reverse). */
-
-#ifdef CONFIG_BRIDGE_DEBUG
-#define MEM_CHECK              /* Use to detect source of memory leaks */
-#endif
 
 /*  ----------------------------------- Globals */
 #if GT_TRACE
@@ -56,85 +51,6 @@ struct extPhysMemPool {
 
 static struct extPhysMemPool extMemPool;
 
-/*  Information about each element allocated on heap */
-struct memInfo {
-       struct list_head link;          /* Must be first */
-       size_t size;
-       void *caller;
-       u32 dwSignature;        /* Should be last */
-};
-
-#ifdef MEM_CHECK
-
-/*
- *  This structure holds a linked list to all memory elements allocated on
- *  heap by DSP/BIOS Bridge. This is used to report memory leaks and free
- *  such elements while removing the DSP/BIOS Bridge driver
- */
-struct memMan {
-       struct LST_LIST lst;
-       spinlock_t lock;
-};
-
-static struct memMan mMan;
-
-/*
- *  These functions are similar to LST_PutTail and LST_RemoveElem and are
- *  duplicated here to make MEM independent of LST
- */
-static inline void MLST_PutTail(struct LST_LIST *pList, struct list_head 
*pElem)
-{
-       pElem->prev = pList->head.prev;
-       pElem->next = &pList->head;
-       pList->head.prev = pElem;
-       pElem->prev->next = pElem;
-}
-
-static inline void MLST_RemoveElem(struct LST_LIST *pList,
-                                  struct list_head *pCurElem)
-{
-       pCurElem->prev->next = pCurElem->next;
-       pCurElem->next->prev = pCurElem->prev;
-       pCurElem->next = NULL;
-       pCurElem->prev = NULL;
-}
-
-static void MEM_Check(void)
-{
-       struct memInfo *pMem;
-       struct list_head *last = &mMan.lst.head;
-       struct list_head *curr = last->next;
-
-       if (!LST_IsEmpty(&mMan.lst)) {
-               GT_0trace(MEM_debugMask, GT_7CLASS, "*** MEMORY LEAK ***\n");
-               GT_0trace(MEM_debugMask, GT_7CLASS,
-                         "Addr      Size      Caller\n");
-               while (curr != last) {
-                       pMem = (struct memInfo *)curr;
-                       curr = curr->next;
-                       if ((u32)pMem > PAGE_OFFSET &&
-                           MEM_IsValidHandle(pMem, memInfoSign)) {
-                               GT_3trace(MEM_debugMask, GT_7CLASS,
-                                       "%lx  %d\t [<%p>]\n",
-                                       (u32) pMem + sizeof(struct memInfo),
-                                       pMem->size, pMem->caller);
-                               MLST_RemoveElem(&mMan.lst,
-                                               (struct list_head *)pMem);
-                               kfree(pMem);
-                       } else {
-                               GT_1trace(MEM_debugMask, GT_7CLASS,
-                                         "Invalid allocation or "
-                                         "Buffer underflow at %x\n",
-                                         (u32)pMem +   sizeof(struct memInfo));
-                               break;
-                       }
-               }
-       }
-       DBC_Ensure(LST_IsEmpty(&mMan.lst));
-}
-
-#endif
-
 void MEM_ExtPhysPoolInit(u32 poolPhysBase, u32 poolSize)
 {
        u32 poolVirtBase;
@@ -233,7 +149,7 @@ static void *MEM_ExtPhysMemAlloc(u32 bytes, u32 align, OUT 
u32 *pPhysAddr)
  */
 void *MEM_Alloc(u32 cBytes, enum MEM_POOLATTRS type)
 {
-       struct memInfo *pMem = NULL;
+       void *pMem = NULL;
 
        GT_2trace(MEM_debugMask, GT_ENTER,
                  "MEM_Alloc: cBytes 0x%x\ttype 0x%x\n", cBytes, type);
@@ -242,46 +158,11 @@ void *MEM_Alloc(u32 cBytes, enum MEM_POOLATTRS type)
                case MEM_NONPAGED:
                /* If non-paged memory required, see note at top of file. */
                case MEM_PAGED:
-#ifndef MEM_CHECK
                        pMem = kmalloc(cBytes,
                                (in_atomic()) ? GFP_ATOMIC : GFP_KERNEL);
-#else
-                       pMem = kmalloc(cBytes + sizeof(struct memInfo),
-                               (in_atomic()) ? GFP_ATOMIC : GFP_KERNEL);
-                       if (pMem) {
-                               pMem->size = cBytes;
-                               pMem->caller = __builtin_return_address(0);
-                               pMem->dwSignature = memInfoSign;
-
-                               spin_lock(&mMan.lock);
-                               MLST_PutTail(&mMan.lst,
-                                           (struct list_head *)pMem);
-                               spin_unlock(&mMan.lock);
-
-                               pMem = (void *)((u32)pMem +
-                                       sizeof(struct memInfo));
-                       }
-#endif
                        break;
                case MEM_LARGEVIRTMEM:
-#ifndef MEM_CHECK
                        pMem = vmalloc(cBytes);
-#else
-                       pMem = vmalloc(cBytes + sizeof(struct memInfo));
-                       if (pMem) {
-                               pMem->size = cBytes;
-                               pMem->caller = __builtin_return_address(0);
-                               pMem->dwSignature = memInfoSign;
-
-                               spin_lock(&mMan.lock);
-                               MLST_PutTail(&mMan.lst,
-                                           (struct list_head *)pMem);
-                               spin_unlock(&mMan.lock);
-
-                               pMem = (void *)((u32)pMem +
-                                       sizeof(struct memInfo));
-                       }
-#endif
                        break;
 
                default:
@@ -335,7 +216,7 @@ void *MEM_AllocPhysMem(u32 cBytes, u32 ulAlign, OUT u32 
*pPhysicalAddress)
  */
 void *MEM_Calloc(u32 cBytes, enum MEM_POOLATTRS type)
 {
-       struct memInfo *pMem = NULL;
+       void *pMem = NULL;
 
        GT_2trace(MEM_debugMask, GT_ENTER,
                  "MEM_Calloc: cBytes 0x%x\ttype 0x%x\n",
@@ -346,51 +227,16 @@ void *MEM_Calloc(u32 cBytes, enum MEM_POOLATTRS type)
                case MEM_NONPAGED:
                /* If non-paged memory required, see note at top of file. */
                case MEM_PAGED:
-#ifndef MEM_CHECK
                        pMem = kmalloc(cBytes,
                                (in_atomic()) ? GFP_ATOMIC : GFP_KERNEL);
                        if (pMem)
                                memset(pMem, 0, cBytes);
 
-#else
-                       pMem = kmalloc(cBytes + sizeof(struct memInfo),
-                               (in_atomic()) ? GFP_ATOMIC : GFP_KERNEL);
-                       if (pMem) {
-                               memset((void *)((u32)pMem +
-                                       sizeof(struct memInfo)), 0, cBytes);
-                               pMem->size = cBytes;
-                               pMem->caller = __builtin_return_address(0);
-                               pMem->dwSignature = memInfoSign;
-                               spin_lock(&mMan.lock);
-                               MLST_PutTail(&mMan.lst,
-                                       (struct list_head *)pMem);
-                               spin_unlock(&mMan.lock);
-                               pMem = (void *)((u32)pMem +
-                                       sizeof(struct memInfo));
-                       }
-#endif
                        break;
                case MEM_LARGEVIRTMEM:
-#ifndef MEM_CHECK
                        pMem = vmalloc(cBytes);
                        if (pMem)
                                memset(pMem, 0, cBytes);
-#else
-                       pMem = vmalloc(cBytes + sizeof(struct memInfo));
-                       if (pMem) {
-                               memset((void *)((u32)pMem +
-                                       sizeof(struct memInfo)), 0, cBytes);
-                               pMem->size = cBytes;
-                               pMem->caller = __builtin_return_address(0);
-                               pMem->dwSignature = memInfoSign;
-                               spin_lock(&mMan.lock);
-                               MLST_PutTail(&mMan.lst,
-                                               (struct list_head *)pMem);
-                               spin_unlock(&mMan.lock);
-                               pMem = (void *)((u32)pMem +
-                                       sizeof(struct memInfo));
-                       }
-#endif
                        break;
                default:
                        GT_1trace(MEM_debugMask, GT_6CLASS,
@@ -410,9 +256,6 @@ void *MEM_Calloc(u32 cBytes, enum MEM_POOLATTRS type)
  */
 void MEM_Exit(void)
 {
-#ifdef MEM_CHECK
-       MEM_Check();
-#endif
 }
 
 /*
@@ -455,35 +298,13 @@ 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));
-#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);
-#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));
-                       }
-               }
-#endif
        }
 }
 
@@ -494,35 +315,13 @@ void MEM_VFree(IN void *pMemBuf)
  */
 void MEM_Free(IN void *pMemBuf)
 {
-#ifdef MEM_CHECK
-       struct memInfo *pMem = (void *)((u32)pMemBuf - sizeof(struct memInfo));
-#endif
-
        DBC_Require(pMemBuf != NULL);
 
        GT_1trace(MEM_debugMask, GT_ENTER, "MEM_Free: pMemBufs 0x%x\n",
                  pMemBuf);
 
        if (pMemBuf) {
-#ifndef MEM_CHECK
                kfree(pMemBuf);
-#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;
-                               kfree(pMem);
-                       } else {
-                               GT_1trace(MEM_debugMask, GT_7CLASS,
-                                       "Invalid allocation or "
-                                       "Buffer underflow at %x\n",
-                                       (u32) pMem + sizeof(struct memInfo));
-                       }
-               }
-#endif
        }
 }
 
@@ -552,12 +351,5 @@ void MEM_FreePhysMem(void *pVirtualAddress, u32 
pPhysicalAddress,
 bool MEM_Init(void)
 {
        GT_create(&MEM_debugMask, "MM");        /* MM for MeM module */
-
-#ifdef MEM_CHECK
-       mMan.lst.head.next = &mMan.lst.head;
-       mMan.lst.head.prev = &mMan.lst.head;
-       spin_lock_init(&mMan.lock);
-#endif
-
        return true;
 }
-- 
1.6.3.3

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to