From 6a6bbfc62348cbf3e24270d1d1e18a917a53eb65 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 20 Dec 2023 17:07:57 +0100 Subject: [PATCH] 5.15-stable patches added patches: kasan-disable-kasan_non_canonical_hook-for-hw-tags.patch --- ...kasan_non_canonical_hook-for-hw-tags.patch | 79 +++++++++++++++++++ queue-5.15/series | 1 + 2 files changed, 80 insertions(+) create mode 100644 queue-5.15/kasan-disable-kasan_non_canonical_hook-for-hw-tags.patch diff --git a/queue-5.15/kasan-disable-kasan_non_canonical_hook-for-hw-tags.patch b/queue-5.15/kasan-disable-kasan_non_canonical_hook-for-hw-tags.patch new file mode 100644 index 00000000000..c899b386e5d --- /dev/null +++ b/queue-5.15/kasan-disable-kasan_non_canonical_hook-for-hw-tags.patch @@ -0,0 +1,79 @@ +From 17c17567fe510857b18fe01b7a88027600e76ac6 Mon Sep 17 00:00:00 2001 +From: Arnd Bergmann +Date: Mon, 16 Oct 2023 22:08:38 +0200 +Subject: kasan: disable kasan_non_canonical_hook() for HW tags + +From: Arnd Bergmann + +commit 17c17567fe510857b18fe01b7a88027600e76ac6 upstream. + +On arm64, building with CONFIG_KASAN_HW_TAGS now causes a compile-time +error: + +mm/kasan/report.c: In function 'kasan_non_canonical_hook': +mm/kasan/report.c:637:20: error: 'KASAN_SHADOW_OFFSET' undeclared (first use in this function) + 637 | if (addr < KASAN_SHADOW_OFFSET) + | ^~~~~~~~~~~~~~~~~~~ +mm/kasan/report.c:637:20: note: each undeclared identifier is reported only once for each function it appears in +mm/kasan/report.c:640:77: error: expected expression before ';' token + 640 | orig_addr = (addr - KASAN_SHADOW_OFFSET) << KASAN_SHADOW_SCALE_SHIFT; + +This was caused by removing the dependency on CONFIG_KASAN_INLINE that +used to prevent this from happening. Use the more specific dependency +on KASAN_SW_TAGS || KASAN_GENERIC to only ignore the function for hwasan +mode. + +Link: https://lkml.kernel.org/r/20231016200925.984439-1-arnd@kernel.org +Fixes: 12ec6a919b0f ("kasan: print the original fault addr when access invalid shadow") +Signed-off-by: Arnd Bergmann +Cc: Alexander Potapenko +Cc: Andrey Konovalov +Cc: Andrey Ryabinin +Cc: Dmitry Vyukov +Cc: Haibo Li +Cc: Kees Cook +Cc: Vincenzo Frascino +Cc: AngeloGioacchino Del Regno +Cc: Matthias Brugger +Signed-off-by: Andrew Morton +Signed-off-by: Amit Pundir +Signed-off-by: Greg Kroah-Hartman +--- + include/linux/kasan.h | 6 +++--- + mm/kasan/report.c | 4 +++- + 2 files changed, 6 insertions(+), 4 deletions(-) + +--- a/include/linux/kasan.h ++++ b/include/linux/kasan.h +@@ -471,10 +471,10 @@ static inline void kasan_free_shadow(con + + #endif /* (CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS) && !CONFIG_KASAN_VMALLOC */ + +-#ifdef CONFIG_KASAN ++#if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS) + void kasan_non_canonical_hook(unsigned long addr); +-#else /* CONFIG_KASAN */ ++#else /* CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS */ + static inline void kasan_non_canonical_hook(unsigned long addr) { } +-#endif /* CONFIG_KASAN */ ++#endif /* CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS */ + + #endif /* LINUX_KASAN_H */ +--- a/mm/kasan/report.c ++++ b/mm/kasan/report.c +@@ -457,8 +457,9 @@ bool kasan_report(unsigned long addr, si + return ret; + } + ++#if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS) + /* +- * With CONFIG_KASAN, accesses to bogus pointers (outside the high ++ * With CONFIG_KASAN_INLINE, accesses to bogus pointers (outside the high + * canonical half of the address space) cause out-of-bounds shadow memory reads + * before the actual access. For addresses in the low canonical half of the + * address space, as well as most non-canonical addresses, that out-of-bounds +@@ -494,3 +495,4 @@ void kasan_non_canonical_hook(unsigned l + pr_alert("KASAN: %s in range [0x%016lx-0x%016lx]\n", bug_type, + orig_addr, orig_addr + KASAN_GRANULE_SIZE - 1); + } ++#endif diff --git a/queue-5.15/series b/queue-5.15/series index 0e536a8ad16..23b2a44a42d 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -156,3 +156,4 @@ revert-drm-bridge-lt9611uxc-fix-the-race-in-the-error-path.patch revert-drm-bridge-lt9611uxc-register-and-attach-our-dsi-device-at-probe.patch revert-drm-bridge-lt9611uxc-switch-to-devm-mipi-dsi-helpers.patch tracing-kprobes-return-eaddrnotavail-when-func-matches-several-symbols.patch +kasan-disable-kasan_non_canonical_hook-for-hw-tags.patch -- 2.47.3