lkml.org 
[lkml]   [2021]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 17/34] kasan, x86, arm64, s390: rename functions for modules shadow
    Date
    From: Andrey Konovalov <andreyknvl@google.com>

    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.

    Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
    ---
    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(-)

    diff --git a/arch/arm64/kernel/module.c b/arch/arm64/kernel/module.c
    index b5ec010c481f..f8bd5100efb5 100644
    --- a/arch/arm64/kernel/module.c
    +++ b/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) < 0)) {
    + if (p && (kasan_alloc_module_shadow(p, size) < 0)) {
    vfree(p);
    return NULL;
    }
    diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
    index b01ba460b7ca..a753cebedda9 100644
    --- a/arch/s390/kernel/module.c
    +++ b/arch/s390/kernel/module.c
    @@ -44,7 +44,7 @@ void *module_alloc(unsigned long size)
    p = __vmalloc_node_range(size, MODULE_ALIGN, MODULES_VADDR, MODULES_END,
    GFP_KERNEL, PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
    __builtin_return_address(0));
    - if (p && (kasan_module_alloc(p, size) < 0)) {
    + if (p && (kasan_alloc_module_shadow(p, size) < 0)) {
    vfree(p);
    return NULL;
    }
    diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c
    index 169fb6f4cd2e..dec41d9ba337 100644
    --- a/arch/x86/kernel/module.c
    +++ b/arch/x86/kernel/module.c
    @@ -77,7 +77,7 @@ void *module_alloc(unsigned long size)
    MODULES_END, GFP_KERNEL,
    PAGE_KERNEL, 0, NUMA_NO_NODE,
    __builtin_return_address(0));
    - if (p && (kasan_module_alloc(p, size) < 0)) {
    + if (p && (kasan_alloc_module_shadow(p, size) < 0)) {
    vfree(p);
    return NULL;
    }
    diff --git a/include/linux/kasan.h b/include/linux/kasan.h
    index 1031070be3f3..4eec58e6ef82 100644
    --- a/include/linux/kasan.h
    +++ b/include/linux/kasan.h
    @@ -453,17 +453,17 @@ static inline void kasan_populate_early_vm_area_shadow(void *start,
    !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);
    -void kasan_free_shadow(const struct vm_struct *vm);
    +int kasan_alloc_module_shadow(void *addr, size_t size);
    +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) { 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) { 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 */

    diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
    index 4a4929b29a23..585c2bf1073b 100644
    --- a/mm/kasan/shadow.c
    +++ b/mm/kasan/shadow.c
    @@ -498,7 +498,7 @@ void kasan_release_vmalloc(unsigned long start, unsigned long end,

    #else /* CONFIG_KASAN_VMALLOC */

    -int kasan_module_alloc(void *addr, size_t size)
    +int kasan_alloc_module_shadow(void *addr, size_t size)
    {
    void *ret;
    size_t scaled_size;
    @@ -529,7 +529,7 @@ int kasan_module_alloc(void *addr, size_t 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));
    diff --git a/mm/vmalloc.c b/mm/vmalloc.c
    index d2a00ad4e1dd..c5235e3e5857 100644
    --- a/mm/vmalloc.c
    +++ b/mm/vmalloc.c
    @@ -2524,7 +2524,7 @@ struct vm_struct *remove_vm_area(const void *addr)
    va->vm = NULL;
    spin_unlock(&vmap_area_lock);

    - kasan_free_shadow(vm);
    + kasan_free_module_shadow(vm);
    free_unmap_vmap_area(va);

    return vm;
    --
    2.25.1
    \
     
     \ /
      Last update: 2021-12-06 22:46    [W:2.652 / U:0.252 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site