The patch titled Subject: kasan, x86, arm64, s390: rename functions for modules shadow has been added to the -mm tree. Its filename is kasan-x86-arm64-s390-rename-functions-for-modules-shadow.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/kasan-x86-arm64-s390-rename-functions-for-modules-shadow.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/kasan-x86-arm64-s390-rename-functions-for-modules-shadow.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, x86, arm64, s390: rename functions for modules shadow Rename kasan_free_shadow to kasan_free_module_shadow and kasan_module_alloc to kasan_alloc_module_shadow. These functions are used to allocate/free shadow memory for kernel modules when KASAN_VMALLOC is not enabled. The new names better reflect their purpose. Also reword the comment next to their declaration to improve clarity. Link: https://lkml.kernel.org/r/36db32bde765d5d0b856f77d2d806e838513fe84.1643047180.git.andreyknvl@xxxxxxxxxx Signed-off-by: Andrey Konovalov <andreyknvl@xxxxxxxxxx> Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx> Acked-by: Marco Elver <elver@xxxxxxxxxx> Cc: Alexander Potapenko <glider@xxxxxxxxxx> Cc: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx> Cc: Dmitry Vyukov <dvyukov@xxxxxxxxxx> Cc: Evgenii Stepanov <eugenis@xxxxxxxxxx> Cc: Mark Rutland <mark.rutland@xxxxxxx> Cc: Peter Collingbourne <pcc@xxxxxxxxxx> Cc: Vincenzo Frascino <vincenzo.frascino@xxxxxxx> Cc: Will Deacon <will@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- arch/arm64/kernel/module.c | 2 +- arch/s390/kernel/module.c | 2 +- arch/x86/kernel/module.c | 2 +- include/linux/kasan.h | 14 +++++++------- mm/kasan/shadow.c | 4 ++-- mm/vmalloc.c | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) --- a/arch/arm64/kernel/module.c~kasan-x86-arm64-s390-rename-functions-for-modules-shadow +++ a/arch/arm64/kernel/module.c @@ -58,7 +58,7 @@ void *module_alloc(unsigned long size) PAGE_KERNEL, 0, NUMA_NO_NODE, __builtin_return_address(0)); - if (p && (kasan_module_alloc(p, size, gfp_mask) < 0)) { + if (p && (kasan_alloc_module_shadow(p, size, gfp_mask) < 0)) { vfree(p); return NULL; } --- a/arch/s390/kernel/module.c~kasan-x86-arm64-s390-rename-functions-for-modules-shadow +++ a/arch/s390/kernel/module.c @@ -45,7 +45,7 @@ void *module_alloc(unsigned long size) p = __vmalloc_node_range(size, MODULE_ALIGN, MODULES_VADDR, MODULES_END, gfp_mask, PAGE_KERNEL_EXEC, VM_DEFER_KMEMLEAK, NUMA_NO_NODE, __builtin_return_address(0)); - if (p && (kasan_module_alloc(p, size, gfp_mask) < 0)) { + if (p && (kasan_alloc_module_shadow(p, size, gfp_mask) < 0)) { vfree(p); return NULL; } --- a/arch/x86/kernel/module.c~kasan-x86-arm64-s390-rename-functions-for-modules-shadow +++ a/arch/x86/kernel/module.c @@ -78,7 +78,7 @@ void *module_alloc(unsigned long size) MODULES_END, gfp_mask, PAGE_KERNEL, VM_DEFER_KMEMLEAK, NUMA_NO_NODE, __builtin_return_address(0)); - if (p && (kasan_module_alloc(p, size, gfp_mask) < 0)) { + if (p && (kasan_alloc_module_shadow(p, size, gfp_mask) < 0)) { vfree(p); return NULL; } --- a/include/linux/kasan.h~kasan-x86-arm64-s390-rename-functions-for-modules-shadow +++ a/include/linux/kasan.h @@ -454,17 +454,17 @@ static inline void kasan_populate_early_ !defined(CONFIG_KASAN_VMALLOC) /* - * These functions provide a special case to support backing module - * allocations with real shadow memory. With KASAN vmalloc, the special - * case is unnecessary, as the work is handled in the generic case. + * These functions allocate and free shadow memory for kernel modules. + * They are only required when KASAN_VMALLOC is not supported, as otherwise + * shadow memory is allocated by the generic vmalloc handlers. */ -int kasan_module_alloc(void *addr, size_t size, gfp_t gfp_mask); -void kasan_free_shadow(const struct vm_struct *vm); +int kasan_alloc_module_shadow(void *addr, size_t size, gfp_t gfp_mask); +void kasan_free_module_shadow(const struct vm_struct *vm); #else /* (CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS) && !CONFIG_KASAN_VMALLOC */ -static inline int kasan_module_alloc(void *addr, size_t size, gfp_t gfp_mask) { return 0; } -static inline void kasan_free_shadow(const struct vm_struct *vm) {} +static inline int kasan_alloc_module_shadow(void *addr, size_t size, gfp_t gfp_mask) { return 0; } +static inline void kasan_free_module_shadow(const struct vm_struct *vm) {} #endif /* (CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS) && !CONFIG_KASAN_VMALLOC */ --- a/mm/kasan/shadow.c~kasan-x86-arm64-s390-rename-functions-for-modules-shadow +++ a/mm/kasan/shadow.c @@ -498,7 +498,7 @@ void kasan_release_vmalloc(unsigned long #else /* CONFIG_KASAN_VMALLOC */ -int kasan_module_alloc(void *addr, size_t size, gfp_t gfp_mask) +int kasan_alloc_module_shadow(void *addr, size_t size, gfp_t gfp_mask) { void *ret; size_t scaled_size; @@ -534,7 +534,7 @@ int kasan_module_alloc(void *addr, size_ return -ENOMEM; } -void kasan_free_shadow(const struct vm_struct *vm) +void kasan_free_module_shadow(const struct vm_struct *vm) { if (vm->flags & VM_KASAN) vfree(kasan_mem_to_shadow(vm->addr)); --- a/mm/vmalloc.c~kasan-x86-arm64-s390-rename-functions-for-modules-shadow +++ a/mm/vmalloc.c @@ -2526,7 +2526,7 @@ struct vm_struct *remove_vm_area(const v va->vm = NULL; spin_unlock(&vmap_area_lock); - kasan_free_shadow(vm); + kasan_free_module_shadow(vm); free_unmap_vmap_area(va); return vm; _ Patches currently in -mm which might be from andreyknvl@xxxxxxxxxx are kasan-page_alloc-deduplicate-should_skip_kasan_poison.patch kasan-page_alloc-move-tag_clear_highpage-out-of-kernel_init_free_pages.patch kasan-page_alloc-merge-kasan_free_pages-into-free_pages_prepare.patch kasan-page_alloc-simplify-kasan_poison_pages-call-site.patch kasan-page_alloc-init-memory-of-skipped-pages-on-free.patch kasan-drop-skip_kasan_poison-variable-in-free_pages_prepare.patch mm-clarify-__gfp_zerotags-comment.patch kasan-only-apply-__gfp_zerotags-when-memory-is-zeroed.patch kasan-page_alloc-refactor-init-checks-in-post_alloc_hook.patch kasan-page_alloc-merge-kasan_alloc_pages-into-post_alloc_hook.patch kasan-page_alloc-combine-tag_clear_highpage-calls-in-post_alloc_hook.patch kasan-page_alloc-move-setpageskipkasanpoison-in-post_alloc_hook.patch kasan-page_alloc-move-kernel_init_free_pages-in-post_alloc_hook.patch kasan-page_alloc-rework-kasan_unpoison_pages-call-site.patch kasan-clean-up-metadata-byte-definitions.patch kasan-define-kasan_vmalloc_invalid-for-sw_tags.patch kasan-x86-arm64-s390-rename-functions-for-modules-shadow.patch kasan-vmalloc-drop-outdated-vm_kasan-comment.patch kasan-reorder-vmalloc-hooks.patch kasan-add-wrappers-for-vmalloc-hooks.patch kasan-vmalloc-reset-tags-in-vmalloc-functions.patch kasan-fork-reset-pointer-tags-of-vmapped-stacks.patch kasan-arm64-reset-pointer-tags-of-vmapped-stacks.patch kasan-vmalloc-add-vmalloc-tagging-for-sw_tags.patch kasan-vmalloc-arm64-mark-vmalloc-mappings-as-pgprot_tagged.patch kasan-vmalloc-unpoison-vm_alloc-pages-after-mapping.patch kasan-mm-only-define-___gfp_skip_kasan_poison-with-hw_tags.patch kasan-page_alloc-allow-skipping-unpoisoning-for-hw_tags.patch kasan-page_alloc-allow-skipping-memory-init-for-hw_tags.patch kasan-vmalloc-add-vmalloc-tagging-for-hw_tags.patch kasan-vmalloc-only-tag-normal-vmalloc-allocations.patch kasan-arm64-dont-tag-executable-vmalloc-allocations.patch kasan-mark-kasan_arg_stacktrace-as-__initdata.patch kasan-clean-up-feature-flags-for-hw_tags-mode.patch kasan-add-kasanvmalloc-command-line-flag.patch kasan-allow-enabling-kasan_vmalloc-and-sw-hw_tags.patch arm64-select-kasan_vmalloc-for-sw-hw_tags-modes.patch kasan-documentation-updates.patch kasan-improve-vmalloc-tests.patch