From b604e8a388702df3cd4d3d64cf42dfc361b235c0 Mon Sep 17 00:00:00 2001
From: Piotr Jaroszyński
Date: Thu, 1 Jul 2010 03:47:52 +0200
Subject: [linux] Make malloc and linux_umalloc valgrindable
Make the allocators used by malloc and linux_umalloc valgrindable.
Include valgrind headers in the codebase to avoid a build dependency
on valgrind.
Signed-off-by: Piotr Jaroszyński
Modified-by: Michael Brown
Signed-off-by: Michael Brown
---
src/include/ipxe/malloc.h | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
(limited to 'src/include')
diff --git a/src/include/ipxe/malloc.h b/src/include/ipxe/malloc.h
index e8136a3ce..c435a7ddb 100644
--- a/src/include/ipxe/malloc.h
+++ b/src/include/ipxe/malloc.h
@@ -19,6 +19,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
*/
#include
#include
+#include
extern size_t freemem;
@@ -39,7 +40,10 @@ extern void mdumpfree ( void );
* @c align must be a power of two. @c size may not be zero.
*/
static inline void * __malloc malloc_dma ( size_t size, size_t phys_align ) {
- return alloc_memblock ( size, phys_align );
+ void * ptr = alloc_memblock ( size, phys_align );
+ if ( ptr && size )
+ VALGRIND_MALLOCLIKE_BLOCK ( ptr, size, 0, 0 );
+ return ptr;
}
/**
@@ -55,6 +59,7 @@ static inline void * __malloc malloc_dma ( size_t size, size_t phys_align ) {
*/
static inline void free_dma ( void *ptr, size_t size ) {
free_memblock ( ptr, size );
+ VALGRIND_FREELIKE_BLOCK ( ptr, 0 );
}
/** A cache discarder */
--
cgit v1.2.3-55-g7522