From: Greg Kroah-Hartman Date: Wed, 20 Dec 2023 16:08:08 +0000 (+0100) Subject: 6.1-stable patches X-Git-Tag: v5.15.145~19 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=52d3677be572b6ea80f172ee60020ec4138529de;p=thirdparty%2Fkernel%2Fstable-queue.git 6.1-stable patches added patches: kasan-disable-kasan_non_canonical_hook-for-hw-tags.patch series --- diff --git a/queue-6.1/kasan-disable-kasan_non_canonical_hook-for-hw-tags.patch b/queue-6.1/kasan-disable-kasan_non_canonical_hook-for-hw-tags.patch new file mode 100644 index 00000000000..c8e9e0c2e8d --- /dev/null +++ b/queue-6.1/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_module_sha + + #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 +@@ -523,8 +523,9 @@ void kasan_report_async(void) + } + #endif /* CONFIG_KASAN_HW_TAGS */ + ++#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 +@@ -560,3 +561,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-6.1/series b/queue-6.1/series new file mode 100644 index 00000000000..6556ee9129b --- /dev/null +++ b/queue-6.1/series @@ -0,0 +1 @@ +kasan-disable-kasan_non_canonical_hook-for-hw-tags.patch