diff options
Diffstat (limited to 'src/include/ipxe/malloc.h')
-rw-r--r-- | src/include/ipxe/malloc.h | 7 |
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 */ |