aboutsummaryrefslogtreecommitdiffstats
path: root/mm/shrinker_debug.c
diff options
context:
space:
mode:
authorAndrey Konovalov <[email protected]>2022-06-09 18:18:47 +0000
committerakpm <[email protected]>2022-07-04 01:08:39 +0000
commit6c2f761dad7851d8088b91063ccaea3c970efe78 (patch)
tree31c0fc3824144a4bb907b88a8f3824e6d0f79b8c /mm/shrinker_debug.c
parentmm: introduce clear_highpage_kasan_tagged (diff)
downloadkernel-6c2f761dad7851d8088b91063ccaea3c970efe78.tar.gz
kernel-6c2f761dad7851d8088b91063ccaea3c970efe78.zip
kasan: fix zeroing vmalloc memory with HW_TAGS
HW_TAGS KASAN skips zeroing page_alloc allocations backing vmalloc mappings via __GFP_SKIP_ZERO. Instead, these pages are zeroed via kasan_unpoison_vmalloc() by passing the KASAN_VMALLOC_INIT flag. The problem is that __kasan_unpoison_vmalloc() does not zero pages when either kasan_vmalloc_enabled() or is_vmalloc_or_module_addr() fail. Thus: 1. Change __vmalloc_node_range() to only set KASAN_VMALLOC_INIT when __GFP_SKIP_ZERO is set. 2. Change __kasan_unpoison_vmalloc() to always zero pages when the KASAN_VMALLOC_INIT flag is set. 3. Add WARN_ON() asserts to check that KASAN_VMALLOC_INIT cannot be set in other early return paths of __kasan_unpoison_vmalloc(). Also clean up the comment in __kasan_unpoison_vmalloc. Link: https://lkml.kernel.org/r/4bc503537efdc539ffc3f461c1b70162eea31cf6.1654798516.git.andreyknvl@google.com Fixes: 23689e91fb22 ("kasan, vmalloc: add vmalloc tagging for HW_TAGS") Signed-off-by: Andrey Konovalov <[email protected]> Cc: Marco Elver <[email protected]> Cc: Alexander Potapenko <[email protected]> Cc: Dmitry Vyukov <[email protected]> Cc: Andrey Ryabinin <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
Diffstat (limited to 'mm/shrinker_debug.c')
0 files changed, 0 insertions, 0 deletions