| From: Andrey Konovalov <andreyknvl@google.com> |
| Subject: kasan: only define metadata structs for Generic mode |
| Date: Mon, 5 Sep 2022 23:05:32 +0200 |
| |
| Hide the definitions of kasan_alloc_meta and kasan_free_meta under an |
| ifdef CONFIG_KASAN_GENERIC check, as these structures are now only used |
| when the Generic mode is enabled. |
| |
| Link: https://lkml.kernel.org/r/8d2aabff8c227c444a3f62edf87d5630beb77640.1662411799.git.andreyknvl@google.com |
| Signed-off-by: Andrey Konovalov <andreyknvl@google.com> |
| Reviewed-by: Marco Elver <elver@google.com> |
| Cc: Alexander Potapenko <glider@google.com> |
| Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com> |
| Cc: Dmitry Vyukov <dvyukov@google.com> |
| Cc: Evgenii Stepanov <eugenis@google.com> |
| Cc: Peter Collingbourne <pcc@google.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| mm/kasan/kasan.h | 12 +++++------- |
| 1 file changed, 5 insertions(+), 7 deletions(-) |
| |
| --- a/mm/kasan/kasan.h~kasan-only-define-metadata-structs-for-generic-mode |
| +++ a/mm/kasan/kasan.h |
| @@ -193,14 +193,12 @@ struct kasan_track { |
| depot_stack_handle_t stack; |
| }; |
| |
| +#ifdef CONFIG_KASAN_GENERIC |
| + |
| struct kasan_alloc_meta { |
| struct kasan_track alloc_track; |
| - /* Generic mode stores free track in kasan_free_meta. */ |
| -#ifdef CONFIG_KASAN_GENERIC |
| + /* Free track is stored in kasan_free_meta. */ |
| depot_stack_handle_t aux_stack[2]; |
| -#else |
| - struct kasan_track free_track; |
| -#endif |
| }; |
| |
| struct qlist_node { |
| @@ -219,12 +217,12 @@ struct qlist_node { |
| * After that, slab allocator stores the freelist pointer in the object. |
| */ |
| struct kasan_free_meta { |
| -#ifdef CONFIG_KASAN_GENERIC |
| struct qlist_node quarantine_link; |
| struct kasan_track free_track; |
| -#endif |
| }; |
| |
| +#endif /* CONFIG_KASAN_GENERIC */ |
| + |
| #if IS_ENABLED(CONFIG_KASAN_KUNIT_TEST) |
| /* Used in KUnit-compatible KASAN tests. */ |
| struct kunit_kasan_status { |
| _ |