kasan-only-define-kasan_metadata_size-for-generic-mode.patch removed from -mm tree
The quilt patch titled
Subject: kasan: only define kasan_metadata_size for Generic mode
has been removed from the -mm tree. Its filename was
kasan-only-define-kasan_metadata_size-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_metadata_size for Generic mode
Date: Mon, 5 Sep 2022 23:05:29 +0200
KASAN provides a helper for calculating the size of per-object metadata stored in the redzone.
As now only the Generic mode uses per-object metadata, only define kasan_metadata_size() for this mode.
---
include/linux/kasan.h | 17 ++++++++--------- mm/kasan/common.c | 11 ----------- mm/kasan/generic.c | 11 +++++++++++ 3 files changed, 19 insertions(+), 20 deletions(-)
include/linux/kasan.h renamed from include/linux/kasan.h~kasan-only-define-kasan_metadata_size-for-generic-mode +8 -9
@@ -150,14 +150,6 @@ static __always_inline void kasan_cache___kasan_cache_create_kmalloc (cache); } -size_t __kasan_metadata_size (struct kmem_cache *cache); -static __always_inline size_t kasan_metadata_size(struct kmem_cache *cache) -{ -if (kasan_enabled ()) -return __kasan_metadata_size (cache); -return 0 ; -} -void __kasan_poison_slab (struct slab *slab); static __always_inline void kasan_poison_slab(struct slab *slab) {
@@ -282,7 +274,6 @@ static inline void kasan_cache_create(st unsigned int *size, slab_flags_t *flags) {}static inline void kasan_cache_create_kmalloc (struct kmem_cache *cache) {} -static inline size_t kasan_metadata_size (struct kmem_cache *cache) {return 0 ; }static inline void kasan_poison_slab (struct slab *slab) {}static inline void kasan_unpoison_object_data (struct kmem_cache *cache,void *object) {}
@@ -333,6 +324,8 @@ static inline void kasan_unpoison_task_s#ifdef CONFIG_KASAN_GENERIC +size_t kasan_metadata_size (struct kmem_cache *cache); +void kasan_cache_shrink (struct kmem_cache *cache);void kasan_cache_shutdown (struct kmem_cache *cache);void kasan_record_aux_stack (void *ptr);
@@ -340,6 +333,12 @@ void kasan_record_aux_stack_noalloc(void#else /* CONFIG_KASAN_GENERIC */ +/* Tag-based KASAN modes do not use per-object metadata. */ +static inline size_t kasan_metadata_size (struct kmem_cache *cache) +{ +return 0 ; +} +static inline void kasan_cache_shrink (struct kmem_cache *cache) {}static inline void kasan_cache_shutdown (struct kmem_cache *cache) {}static inline void kasan_record_aux_stack (void *ptr) {}
mm/kasan/common.c renamed from mm/kasan/common.c~kasan-only-define-kasan_metadata_size-for-generic-mode +0 -11
@@ -139,17 +139,6 @@ void __kasan_cache_create_kmalloc(struct cache->kasan_info.is_kmalloc = true; } -size_t __kasan_metadata_size (struct kmem_cache *cache) -{ -if (!kasan_requires_meta ()) -return 0 ; -return (cache->kasan_info.alloc_meta_offset ? -sizeof (struct kasan_alloc_meta ) :0 ) + - ((cache->kasan_info.free_meta_offset && - cache->kasan_info.free_meta_offset !=KASAN_NO_FREE_META ) ? -sizeof (struct kasan_free_meta ) :0 ); -} -void __kasan_poison_slab (struct slab *slab) {struct page *page =slab_page (slab);
mm/kasan/generic.c renamed from mm/kasan/generic.c~kasan-only-define-kasan_metadata_size-for-generic-mode +11 -0
@@ -427,6 +427,17 @@ void kasan_init_object_meta(struct kmem___memset (alloc_meta,0 ,sizeof (*alloc_meta)); } +size_t kasan_metadata_size (struct kmem_cache *cache) +{ +if (!kasan_requires_meta ()) +return 0 ; +return (cache->kasan_info.alloc_meta_offset ? +sizeof (struct kasan_alloc_meta ) :0 ) + + ((cache->kasan_info.free_meta_offset && + cache->kasan_info.free_meta_offset !=KASAN_NO_FREE_META ) ? +sizeof (struct kasan_free_meta ) :0 ); +} +static void __kasan_record_aux_stack (void *addr,bool can_alloc) {struct slab *slab =kasan_addr_to_slab (addr);
_
Patches currently in -mm which might be from [email protected] are
kasan-fix-array-bounds-warnings-in-tests.patch