summaryrefslogtreecommitdiffstats
path: root/src/include/ipxe/malloc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/ipxe/malloc.h')
-rw-r--r--src/include/ipxe/malloc.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/include/ipxe/malloc.h b/src/include/ipxe/malloc.h
index e8136a3c..c435a7dd 100644
--- a/src/include/ipxe/malloc.h
+++ b/src/include/ipxe/malloc.h
@@ -19,6 +19,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
*/
#include <stdlib.h>
#include <ipxe/tables.h>
+#include <valgrind/memcheck.h>
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 */