Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

kasan, mm: only define ___GFP_SKIP_KASAN_POISON with HW_TAGS

Only define the ___GFP_SKIP_KASAN_POISON flag when CONFIG_KASAN_HW_TAGS is
enabled.

This patch it not useful by itself, but it prepares the code for additions
of new KASAN-specific GFP patches.

Link: https://lkml.kernel.org/r/44e5738a584c11801b2b8f1231898918efc8634a.1643047180.git.andreyknvl@google.com
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Acked-by: Marco Elver <elver@google.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Evgenii Stepanov <eugenis@google.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Andrey Konovalov and committed by
Linus Torvalds
f49d9c5b 19f1c3ac

+16 -4
+7 -1
include/linux/gfp.h
··· 54 54 #define ___GFP_THISNODE 0x200000u 55 55 #define ___GFP_ACCOUNT 0x400000u 56 56 #define ___GFP_ZEROTAGS 0x800000u 57 + #ifdef CONFIG_KASAN_HW_TAGS 57 58 #define ___GFP_SKIP_KASAN_POISON 0x1000000u 59 + #else 60 + #define ___GFP_SKIP_KASAN_POISON 0 61 + #endif 58 62 #ifdef CONFIG_LOCKDEP 59 63 #define ___GFP_NOLOCKDEP 0x2000000u 60 64 #else ··· 255 251 #define __GFP_NOLOCKDEP ((__force gfp_t)___GFP_NOLOCKDEP) 256 252 257 253 /* Room for N __GFP_FOO bits */ 258 - #define __GFP_BITS_SHIFT (25 + IS_ENABLED(CONFIG_LOCKDEP)) 254 + #define __GFP_BITS_SHIFT (24 + \ 255 + IS_ENABLED(CONFIG_KASAN_HW_TAGS) + \ 256 + IS_ENABLED(CONFIG_LOCKDEP)) 259 257 #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) 260 258 261 259 /**
+9 -3
include/trace/events/mmflags.h
··· 49 49 {(unsigned long)__GFP_RECLAIM, "__GFP_RECLAIM"}, \ 50 50 {(unsigned long)__GFP_DIRECT_RECLAIM, "__GFP_DIRECT_RECLAIM"},\ 51 51 {(unsigned long)__GFP_KSWAPD_RECLAIM, "__GFP_KSWAPD_RECLAIM"},\ 52 - {(unsigned long)__GFP_ZEROTAGS, "__GFP_ZEROTAGS"}, \ 53 - {(unsigned long)__GFP_SKIP_KASAN_POISON,"__GFP_SKIP_KASAN_POISON"}\ 52 + {(unsigned long)__GFP_ZEROTAGS, "__GFP_ZEROTAGS"} \ 53 + 54 + #ifdef CONFIG_KASAN_HW_TAGS 55 + #define __def_gfpflag_names_kasan \ 56 + , {(unsigned long)__GFP_SKIP_KASAN_POISON, "__GFP_SKIP_KASAN_POISON"} 57 + #else 58 + #define __def_gfpflag_names_kasan 59 + #endif 54 60 55 61 #define show_gfp_flags(flags) \ 56 62 (flags) ? __print_flags(flags, "|", \ 57 - __def_gfpflag_names \ 63 + __def_gfpflag_names __def_gfpflag_names_kasan \ 58 64 ) : "none" 59 65 60 66 #ifdef CONFIG_MMU