The patch titled Subject: kasan: rename get_alloc/free_info has been added to the -mm tree. Its filename is kasan-rename-get_alloc-free_info.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/kasan-rename-get_alloc-free_info.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/kasan-rename-get_alloc-free_info.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Andrey Konovalov <andreyknvl@xxxxxxxxxx> Subject: kasan: rename get_alloc/free_info Rename get_alloc_info() and get_free_info() to kasan_get_alloc_meta() and kasan_get_free_meta() to better reflect what those do and avoid confusion with kasan_set_free_info(). No functional changes. Link: https://lkml.kernel.org/r/27b7c036b754af15a2839e945f6d8bfce32b4c2f.1606162397.git.andreyknvl@xxxxxxxxxx Link: https://linux-review.googlesource.com/id/Ib6e4ba61c8b12112b403d3479a9799ac8fff8de1 Signed-off-by: Andrey Konovalov <andreyknvl@xxxxxxxxxx> Reviewed-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx> Reviewed-by: Marco Elver <elver@xxxxxxxxxx> Tested-by: Vincenzo Frascino <vincenzo.frascino@xxxxxxx> Cc: Alexander Potapenko <glider@xxxxxxxxxx> Cc: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx> Cc: Branislav Rankov <Branislav.Rankov@xxxxxxx> Cc: Catalin Marinas <catalin.marinas@xxxxxxx> Cc: Evgenii Stepanov <eugenis@xxxxxxxxxx> Cc: Kevin Brodsky <kevin.brodsky@xxxxxxx> Cc: Vasily Gorbik <gor@xxxxxxxxxxxxx> Cc: Will Deacon <will.deacon@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/kasan/common.c | 16 ++++++++-------- mm/kasan/generic.c | 12 ++++++------ mm/kasan/hw_tags.c | 4 ++-- mm/kasan/kasan.h | 8 ++++---- mm/kasan/quarantine.c | 4 ++-- mm/kasan/report.c | 12 ++++++------ mm/kasan/report_sw_tags.c | 2 +- mm/kasan/sw_tags.c | 4 ++-- 8 files changed, 31 insertions(+), 31 deletions(-) --- a/mm/kasan/common.c~kasan-rename-get_alloc-free_info +++ a/mm/kasan/common.c @@ -181,14 +181,14 @@ size_t kasan_metadata_size(struct kmem_c sizeof(struct kasan_free_meta) : 0); } -struct kasan_alloc_meta *get_alloc_info(struct kmem_cache *cache, - const void *object) +struct kasan_alloc_meta *kasan_get_alloc_meta(struct kmem_cache *cache, + const void *object) { return (void *)reset_tag(object) + cache->kasan_info.alloc_meta_offset; } -struct kasan_free_meta *get_free_info(struct kmem_cache *cache, - const void *object) +struct kasan_free_meta *kasan_get_free_meta(struct kmem_cache *cache, + const void *object) { BUILD_BUG_ON(sizeof(struct kasan_free_meta) > 32); return (void *)reset_tag(object) + cache->kasan_info.free_meta_offset; @@ -265,13 +265,13 @@ static u8 assign_tag(struct kmem_cache * void * __must_check kasan_init_slab_obj(struct kmem_cache *cache, const void *object) { - struct kasan_alloc_meta *alloc_info; + struct kasan_alloc_meta *alloc_meta; if (!(cache->flags & SLAB_KASAN)) return (void *)object; - alloc_info = get_alloc_info(cache, object); - __memset(alloc_info, 0, sizeof(*alloc_info)); + alloc_meta = kasan_get_alloc_meta(cache, object); + __memset(alloc_meta, 0, sizeof(*alloc_meta)); if (IS_ENABLED(CONFIG_KASAN_SW_TAGS) || IS_ENABLED(CONFIG_KASAN_HW_TAGS)) object = set_tag(object, assign_tag(cache, object, true, false)); @@ -357,7 +357,7 @@ static void *__kasan_kmalloc(struct kmem KASAN_KMALLOC_REDZONE); if (cache->flags & SLAB_KASAN) - kasan_set_track(&get_alloc_info(cache, object)->alloc_track, flags); + kasan_set_track(&kasan_get_alloc_meta(cache, object)->alloc_track, flags); return set_tag(object, tag); } --- a/mm/kasan/generic.c~kasan-rename-get_alloc-free_info +++ a/mm/kasan/generic.c @@ -329,7 +329,7 @@ void kasan_record_aux_stack(void *addr) { struct page *page = kasan_addr_to_page(addr); struct kmem_cache *cache; - struct kasan_alloc_meta *alloc_info; + struct kasan_alloc_meta *alloc_meta; void *object; if (is_kfence_address(addr) || !(page && PageSlab(page))) @@ -337,13 +337,13 @@ void kasan_record_aux_stack(void *addr) cache = page->slab_cache; object = nearest_obj(cache, page, addr); - alloc_info = get_alloc_info(cache, object); + alloc_meta = kasan_get_alloc_meta(cache, object); /* * record the last two call_rcu() call stacks. */ - alloc_info->aux_stack[1] = alloc_info->aux_stack[0]; - alloc_info->aux_stack[0] = kasan_save_stack(GFP_NOWAIT); + alloc_meta->aux_stack[1] = alloc_meta->aux_stack[0]; + alloc_meta->aux_stack[0] = kasan_save_stack(GFP_NOWAIT); } void kasan_set_free_info(struct kmem_cache *cache, @@ -351,7 +351,7 @@ void kasan_set_free_info(struct kmem_cac { struct kasan_free_meta *free_meta; - free_meta = get_free_info(cache, object); + free_meta = kasan_get_free_meta(cache, object); kasan_set_track(&free_meta->free_track, GFP_NOWAIT); /* @@ -365,5 +365,5 @@ struct kasan_track *kasan_get_free_track { if (*(u8 *)kasan_mem_to_shadow(object) != KASAN_KMALLOC_FREETRACK) return NULL; - return &get_free_info(cache, object)->free_track; + return &kasan_get_free_meta(cache, object)->free_track; } --- a/mm/kasan/hw_tags.c~kasan-rename-get_alloc-free_info +++ a/mm/kasan/hw_tags.c @@ -75,7 +75,7 @@ void kasan_set_free_info(struct kmem_cac { struct kasan_alloc_meta *alloc_meta; - alloc_meta = get_alloc_info(cache, object); + alloc_meta = kasan_get_alloc_meta(cache, object); kasan_set_track(&alloc_meta->free_track[0], GFP_NOWAIT); } @@ -84,6 +84,6 @@ struct kasan_track *kasan_get_free_track { struct kasan_alloc_meta *alloc_meta; - alloc_meta = get_alloc_info(cache, object); + alloc_meta = kasan_get_alloc_meta(cache, object); return &alloc_meta->free_track[0]; } --- a/mm/kasan/kasan.h~kasan-rename-get_alloc-free_info +++ a/mm/kasan/kasan.h @@ -149,10 +149,10 @@ struct kasan_free_meta { #endif }; -struct kasan_alloc_meta *get_alloc_info(struct kmem_cache *cache, - const void *object); -struct kasan_free_meta *get_free_info(struct kmem_cache *cache, - const void *object); +struct kasan_alloc_meta *kasan_get_alloc_meta(struct kmem_cache *cache, + const void *object); +struct kasan_free_meta *kasan_get_free_meta(struct kmem_cache *cache, + const void *object); void poison_range(const void *address, size_t size, u8 value); void unpoison_range(const void *address, size_t size); --- a/mm/kasan/quarantine.c~kasan-rename-get_alloc-free_info +++ a/mm/kasan/quarantine.c @@ -166,7 +166,7 @@ void quarantine_put(struct kmem_cache *c unsigned long flags; struct qlist_head *q; struct qlist_head temp = QLIST_INIT; - struct kasan_free_meta *info = get_free_info(cache, object); + struct kasan_free_meta *meta = kasan_get_free_meta(cache, object); /* * Note: irq must be disabled until after we move the batch to the @@ -179,7 +179,7 @@ void quarantine_put(struct kmem_cache *c local_irq_save(flags); q = this_cpu_ptr(&cpu_quarantine); - qlist_put(q, &info->quarantine_link, cache->size); + qlist_put(q, &meta->quarantine_link, cache->size); if (unlikely(q->bytes > QUARANTINE_PERCPU_SIZE)) { qlist_move_all(q, &temp); --- a/mm/kasan/report.c~kasan-rename-get_alloc-free_info +++ a/mm/kasan/report.c @@ -164,12 +164,12 @@ static void describe_object_addr(struct static void describe_object(struct kmem_cache *cache, void *object, const void *addr, u8 tag) { - struct kasan_alloc_meta *alloc_info = get_alloc_info(cache, object); + struct kasan_alloc_meta *alloc_meta = kasan_get_alloc_meta(cache, object); if (cache->flags & SLAB_KASAN) { struct kasan_track *free_track; - print_track(&alloc_info->alloc_track, "Allocated"); + print_track(&alloc_meta->alloc_track, "Allocated"); pr_err("\n"); free_track = kasan_get_free_track(cache, object, tag); if (free_track) { @@ -178,14 +178,14 @@ static void describe_object(struct kmem_ } #ifdef CONFIG_KASAN_GENERIC - if (alloc_info->aux_stack[0]) { + if (alloc_meta->aux_stack[0]) { pr_err("Last call_rcu():\n"); - print_stack(alloc_info->aux_stack[0]); + print_stack(alloc_meta->aux_stack[0]); pr_err("\n"); } - if (alloc_info->aux_stack[1]) { + if (alloc_meta->aux_stack[1]) { pr_err("Second to last call_rcu():\n"); - print_stack(alloc_info->aux_stack[1]); + print_stack(alloc_meta->aux_stack[1]); pr_err("\n"); } #endif --- a/mm/kasan/report_sw_tags.c~kasan-rename-get_alloc-free_info +++ a/mm/kasan/report_sw_tags.c @@ -46,7 +46,7 @@ const char *get_bug_type(struct kasan_ac if (page && PageSlab(page)) { cache = page->slab_cache; object = nearest_obj(cache, page, (void *)addr); - alloc_meta = get_alloc_info(cache, object); + alloc_meta = kasan_get_alloc_meta(cache, object); for (i = 0; i < KASAN_NR_FREE_STACKS; i++) if (alloc_meta->free_pointer_tag[i] == tag) --- a/mm/kasan/sw_tags.c~kasan-rename-get_alloc-free_info +++ a/mm/kasan/sw_tags.c @@ -174,7 +174,7 @@ void kasan_set_free_info(struct kmem_cac struct kasan_alloc_meta *alloc_meta; u8 idx = 0; - alloc_meta = get_alloc_info(cache, object); + alloc_meta = kasan_get_alloc_meta(cache, object); #ifdef CONFIG_KASAN_SW_TAGS_IDENTIFY idx = alloc_meta->free_track_idx; @@ -191,7 +191,7 @@ struct kasan_track *kasan_get_free_track struct kasan_alloc_meta *alloc_meta; int i = 0; - alloc_meta = get_alloc_info(cache, object); + alloc_meta = kasan_get_alloc_meta(cache, object); #ifdef CONFIG_KASAN_SW_TAGS_IDENTIFY for (i = 0; i < KASAN_NR_FREE_STACKS; i++) { _ Patches currently in -mm which might be from andreyknvl@xxxxxxxxxx are kasan-drop-unnecessary-gpl-text-from-comment-headers.patch kasan-kasan_vmalloc-depends-on-kasan_generic.patch kasan-group-vmalloc-code.patch kasan-shadow-declarations-only-for-software-modes.patch kasan-rename-unpoison_shadow-to-unpoison_range.patch kasan-rename-kasan_shadow_-to-kasan_granule_.patch kasan-only-build-initc-for-software-modes.patch kasan-split-out-shadowc-from-commonc.patch kasan-define-kasan_memory_per_shadow_page.patch kasan-rename-report-and-tags-files.patch kasan-dont-duplicate-config-dependencies.patch kasan-hide-invalid-free-check-implementation.patch kasan-decode-stack-frame-only-with-kasan_stack_enable.patch kasan-arm64-only-init-shadow-for-software-modes.patch kasan-arm64-only-use-kasan_depth-for-software-modes.patch kasan-arm64-move-initialization-message.patch kasan-arm64-rename-kasan_init_tags-and-mark-as-__init.patch kasan-rename-addr_has_shadow-to-addr_has_metadata.patch kasan-rename-print_shadow_for_address-to-print_memory_metadata.patch kasan-rename-shadow-layout-macros-to-meta.patch kasan-separate-metadata_fetch_row-for-each-mode.patch kasan-arm64-dont-allow-sw_tags-with-arm64_mte.patch kasan-introduce-config_kasan_hw_tags.patch arm64-kasan-align-allocations-for-hw_tags.patch arm64-kasan-add-arch-layer-for-memory-tagging-helpers.patch kasan-define-kasan_granule_size-for-hw_tags.patch kasan-x86-s390-update-undef-config_kasan.patch kasan-arm64-expand-config_kasan-checks.patch kasan-arm64-implement-hw_tags-runtime.patch kasan-arm64-print-report-from-tag-fault-handler.patch kasan-mm-reset-tags-when-accessing-metadata.patch kasan-arm64-enable-config_kasan_hw_tags.patch kasan-add-documentation-for-hardware-tag-based-mode.patch kasan-simplify-quarantine_put-call-site.patch kasan-rename-get_alloc-free_info.patch kasan-introduce-set_alloc_info.patch kasan-arm64-unpoison-stack-only-with-config_kasan_stack.patch kasan-allow-vmap_stack-for-hw_tags-mode.patch kasan-remove-__kasan_unpoison_stack.patch kasan-inline-kasan_reset_tag-for-tag-based-modes.patch kasan-inline-random_tag-for-hw_tags.patch kasan-open-code-kasan_unpoison_slab.patch kasan-inline-unpoison_range-and-check_invalid_free.patch kasan-add-and-integrate-kasan-boot-parameters.patch kasan-mm-check-kasan_enabled-in-annotations.patch kasan-mm-rename-kasan_poison_kfree.patch kasan-dont-round_up-too-much.patch kasan-simplify-assign_tag-and-set_tag-calls.patch kasan-clarify-comment-in-__kasan_kfree_large.patch kasan-sanitize-objects-when-metadata-doesnt-fit.patch kasan-mm-allow-cache-merging-with-no-metadata.patch kasan-update-documentation.patch