kasan-only-define-kasan_never_merge-for-generic-mode.patch removed from -mm tree
The quilt patch titled
Subject: kasan: only define kasan_never_merge for Generic mode
has been removed from the -mm tree. Its filename was
kasan-only-define-kasan_never_merge-for-generic-mode.patch
This patch was dropped because it was merged into the mm-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Andrey Konovalov <[email protected]>
Subject: kasan: only define kasan_never_merge for Generic mode
Date: Mon, 5 Sep 2022 23:05:30 +0200
KASAN prevents merging of slab caches whose objects have per-object metadata stored in redzones.
As now only the Generic mode uses per-object metadata, define kasan_never_merge() only for this mode.
---
include/linux/kasan.h | 18 ++++++------------ mm/kasan/common.c | 8 -------- mm/kasan/generic.c | 8 ++++++++ 3 files changed, 14 insertions(+), 20 deletions(-)
include/linux/kasan.h renamed from include/linux/kasan.h~kasan-only-define-kasan_never_merge-for-generic-mode +6 -12
@@ -103,14 +103,6 @@ struct kasan_cache {bool is_kmalloc; }; -slab_flags_t __kasan_never_merge (void ); -static __always_inline slab_flags_t kasan_never_merge(void) -{ -if (kasan_enabled ()) -return __kasan_never_merge (); -return 0 ; -} -void __kasan_unpoison_range (const void *addr,size_t size); static __always_inline void kasan_unpoison_range(const void *addr, size_t size) {
@@ -261,10 +253,6 @@ static __always_inline bool kasan_check_#else /* CONFIG_KASAN */ -static inline slab_flags_t kasan_never_merge (void ) -{ -return 0 ; -}static inline void kasan_unpoison_range (const void *address,size_t size) {}static inline void kasan_poison_pages (struct page *page,unsigned int order,bool init) {}
@@ -325,6 +313,7 @@ static inline void kasan_unpoison_task_s#ifdef CONFIG_KASAN_GENERIC size_t kasan_metadata_size (struct kmem_cache *cache); +slab_flags_t kasan_never_merge (void );void kasan_cache_shrink (struct kmem_cache *cache);void kasan_cache_shutdown (struct kmem_cache *cache);
@@ -338,6 +327,11 @@ static inline size_t kasan_metadata_size {return 0 ; } +/* And thus nothing prevents cache merging. */ +static inline slab_flags_t kasan_never_merge (void ) +{ +return 0 ; +}static inline void kasan_cache_shrink (struct kmem_cache *cache) {}static inline void kasan_cache_shutdown (struct kmem_cache *cache) {}
mm/kasan/common.c renamed from mm/kasan/common.c~kasan-only-define-kasan_never_merge-for-generic-mode +0 -8
@@ -88,14 +88,6 @@ asmlinkage void kasan_unpoison_task_stac }#endif /* CONFIG_KASAN_STACK */ -/* Only allow cache merging when no per-object metadata is present. */ -slab_flags_t __kasan_never_merge (void ) -{ -if (kasan_requires_meta ()) -return SLAB_KASAN ; -return 0 ; -} -void __kasan_unpoison_pages (struct page *page,unsigned int order,bool init) {u8 tag;
mm/kasan/generic.c renamed from mm/kasan/generic.c~kasan-only-define-kasan_never_merge-for-generic-mode +8 -0
@@ -328,6 +328,14 @@ DEFINE_ASAN_SET_SHADOW(f3);DEFINE_ASAN_SET_SHADOW (f5);DEFINE_ASAN_SET_SHADOW (f8); +/* Only allow cache merging when no per-object metadata is present. */ +slab_flags_t kasan_never_merge (void ) +{ +if (!kasan_requires_meta ()) +return 0 ; +return SLAB_KASAN ; +} +/* * Adaptive redzone policy taken from the userspace AddressSanitizer runtime. * For larger allocations larger redzones are used.
_
Patches currently in -mm which might be from [email protected] are
kasan-fix-array-bounds-warnings-in-tests.patch