Page tables are always accessed via __va(phys) / phys_to_virt(phys). With a match-all tag in the pointer, MTE never checks memory tags on access. Therefore: KASAN HW tags are set during page table allocation but never checked during use. KASAN poisoning on free provides no value for these pages as well. Its pure overhead - both at allocation time and free time. Hence, skip the tag setting for all page tables. Signed-off-by: Muhammad Usama Anjum --- include/asm-generic/pgalloc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/asm-generic/pgalloc.h b/include/asm-generic/pgalloc.h index 57137d3ac1592..051aa1331051c 100644 --- a/include/asm-generic/pgalloc.h +++ b/include/asm-generic/pgalloc.h @@ -4,7 +4,7 @@ #ifdef CONFIG_MMU -#define GFP_PGTABLE_KERNEL (GFP_KERNEL | __GFP_ZERO) +#define GFP_PGTABLE_KERNEL (GFP_KERNEL | __GFP_ZERO | __GFP_SKIP_KASAN) #define GFP_PGTABLE_USER (GFP_PGTABLE_KERNEL | __GFP_ACCOUNT) /** -- 2.47.3