diff options
Diffstat (limited to 'mm/kfence/core.c')
| -rw-r--r-- | mm/kfence/core.c | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/mm/kfence/core.c b/mm/kfence/core.c index 3b8ec938470a..d53c91f881a4 100644 --- a/mm/kfence/core.c +++ b/mm/kfence/core.c @@ -12,6 +12,7 @@  #include <linux/debugfs.h>  #include <linux/kcsan-checks.h>  #include <linux/kfence.h> +#include <linux/kmemleak.h>  #include <linux/list.h>  #include <linux/lockdep.h>  #include <linux/memblock.h> @@ -480,6 +481,14 @@ static bool __init kfence_init_pool(void)  		addr += 2 * PAGE_SIZE;  	} +	/* +	 * The pool is live and will never be deallocated from this point on. +	 * Remove the pool object from the kmemleak object tree, as it would +	 * otherwise overlap with allocations returned by kfence_alloc(), which +	 * are registered with kmemleak through the slab post-alloc hook. +	 */ +	kmemleak_free(__kfence_pool); +  	return true;  err:  |