Andrey Konovalov 94ae8b83fe kasan, page_alloc: deduplicate should_skip_kasan_poison
Patch series "kasan, vmalloc, arm64: add vmalloc tagging support for SW/HW_TAGS", v6.

This patchset adds vmalloc tagging support for SW_TAGS and HW_TAGS
KASAN modes.

About half of patches are cleanups I went for along the way.  None of them
seem to be important enough to go through stable, so I decided not to
split them out into separate patches/series.

The patchset is partially based on an early version of the HW_TAGS
patchset by Vincenzo that had vmalloc support.  Thus, I added a
Co-developed-by tag into a few patches.

SW_TAGS vmalloc tagging support is straightforward.  It reuses all of the
generic KASAN machinery, but uses shadow memory to store tags instead of
magic values.  Naturally, vmalloc tagging requires adding a few
kasan_reset_tag() annotations to the vmalloc code.

HW_TAGS vmalloc tagging support stands out.  HW_TAGS KASAN is based on Arm
MTE, which can only assigns tags to physical memory.  As a result, HW_TAGS
KASAN only tags vmalloc() allocations, which are backed by page_alloc
memory.  It ignores vmap() and others.

This patch (of 39):

Currently, should_skip_kasan_poison() has two definitions: one for when
CONFIG_DEFERRED_STRUCT_PAGE_INIT is enabled, one for when it's not.

Instead of duplicating the checks, add a deferred_pages_enabled() helper
and use it in a single should_skip_kasan_poison() definition.

Also move should_skip_kasan_poison() closer to its caller and clarify all
conditions in the comment.

Link: https://lkml.kernel.org/r/cover.1643047180.git.andreyknvl@google.com
Link: https://lkml.kernel.org/r/658b79f5fb305edaf7dc16bc52ea870d3220d4a8.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: Dmitry Vyukov <dvyukov@google.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Evgenii Stepanov <eugenis@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2022-03-24 19:06:46 -07:00
..
2022-03-22 17:03:12 -07:00
2021-05-07 00:26:35 -07:00
2022-03-24 19:06:45 -07:00
2022-03-22 15:57:01 -07:00
2022-03-22 17:03:12 -07:00
2022-03-22 17:03:12 -07:00
2022-02-14 19:51:47 +01:00
2022-03-22 17:03:12 -07:00
2022-03-22 17:03:12 -07:00
2022-01-15 16:30:28 +02:00
2022-03-22 17:03:12 -07:00
2022-03-23 18:03:08 -07:00
2022-03-22 17:03:12 -07:00
2022-03-22 17:03:12 -07:00
2022-03-22 17:03:12 -07:00
2022-03-22 17:03:12 -07:00
2022-03-23 18:03:08 -07:00
2022-03-24 19:06:45 -07:00
2022-03-22 17:03:12 -07:00
2022-03-22 17:03:12 -07:00
2022-03-22 17:03:12 -07:00
2022-03-22 17:03:12 -07:00
2022-03-22 18:26:56 -07:00
2022-03-24 19:06:44 -07:00
2022-01-23 06:20:44 +02:00
2021-05-07 00:26:35 -07:00
2022-03-22 18:26:56 -07:00
2022-03-22 18:26:56 -07:00
2022-03-22 15:57:03 -07:00
2022-03-22 15:57:03 -07:00
2022-03-23 12:33:21 -07:00
2022-03-23 12:33:21 -07:00
2022-03-22 18:26:56 -07:00
2022-03-24 19:06:45 -07:00
2022-03-22 18:26:56 -07:00
2022-03-22 17:03:12 -07:00
2022-03-24 11:58:57 -07:00
2022-03-22 17:03:12 -07:00
2022-03-22 17:03:12 -07:00
2022-01-15 16:30:31 +02:00