@@ -495,35 +495,27 @@ void MEM_VFree(IN void *pMemBuf)
void MEM_Free(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_Free: pMemBufs 0x%x\n",
pMemBuf);
-
- if (pMemBuf) {
-#ifndef MEM_CHECK
- kfree(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;
+ kfree(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;
- kfree(pMem);
- } else {
- GT_1trace(MEM_debugMask, GT_7CLASS,
- "Invalid allocation or "
- "Buffer underflow at %x\n",
- (u32) pMem + sizeof(struct memInfo));
- }
- }
+ kfree(pMemBuf);
#endif
- }
}
/*