lkml.org 
[lkml]   [2021]   [Jun]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/9] sections: Move and rename core_kernel_data() to is_kernel_data()
    Date
    Move core_kernel_data() into sections.h and rename it to
    is_kernel_data(), also make it return bool value, then
    update all the callers.

    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    ---
    include/asm-generic/sections.h | 14 ++++++++++++++
    include/linux/kernel.h | 1 -
    kernel/extable.c | 18 ------------------
    kernel/trace/ftrace.c | 2 +-
    net/sysctl_net.c | 2 +-
    5 files changed, 16 insertions(+), 21 deletions(-)

    diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h
    index 817309e289db..5727e67f4b7a 100644
    --- a/include/asm-generic/sections.h
    +++ b/include/asm-generic/sections.h
    @@ -142,6 +142,20 @@ static inline bool init_section_intersects(void *virt, size_t size)
    return memory_intersects(__init_begin, __init_end, virt, size);
    }

    +/**
    + * is_kernel_data - checks if the pointer address is located in the
    + * .data section
    + *
    + * @addr: address to check
    + *
    + * Returns: true if the address is located in .data, false otherwise.
    + */
    +static inline bool is_kernel_data(unsigned long addr)
    +{
    + return addr >= (unsigned long)_sdata &&
    + addr < (unsigned long)_edata;
    +}
    +
    /**
    * is_kernel_rodata - checks if the pointer address is located in the
    * .rodata section
    diff --git a/include/linux/kernel.h b/include/linux/kernel.h
    index 1b2f0a7e00d6..0622418bafbc 100644
    --- a/include/linux/kernel.h
    +++ b/include/linux/kernel.h
    @@ -230,7 +230,6 @@ extern char *next_arg(char *args, char **param, char **val);

    extern int core_kernel_text(unsigned long addr);
    extern int init_kernel_text(unsigned long addr);
    -extern int core_kernel_data(unsigned long addr);
    extern int __kernel_text_address(unsigned long addr);
    extern int kernel_text_address(unsigned long addr);
    extern int func_ptr_is_kernel_text(void *ptr);
    diff --git a/kernel/extable.c b/kernel/extable.c
    index b0ea5eb0c3b4..da26203841d4 100644
    --- a/kernel/extable.c
    +++ b/kernel/extable.c
    @@ -82,24 +82,6 @@ int notrace core_kernel_text(unsigned long addr)
    return 0;
    }

    -/**
    - * core_kernel_data - tell if addr points to kernel data
    - * @addr: address to test
    - *
    - * Returns true if @addr passed in is from the core kernel data
    - * section.
    - *
    - * Note: On some archs it may return true for core RODATA, and false
    - * for others. But will always be true for core RW data.
    - */
    -int core_kernel_data(unsigned long addr)
    -{
    - if (addr >= (unsigned long)_sdata &&
    - addr < (unsigned long)_edata)
    - return 1;
    - return 0;
    -}
    -
    int __kernel_text_address(unsigned long addr)
    {
    if (kernel_text_address(addr))
    diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
    index 72ef4dccbcc4..a21b13ebe98e 100644
    --- a/kernel/trace/ftrace.c
    +++ b/kernel/trace/ftrace.c
    @@ -323,7 +323,7 @@ int __register_ftrace_function(struct ftrace_ops *ops)
    if (!ftrace_enabled && (ops->flags & FTRACE_OPS_FL_PERMANENT))
    return -EBUSY;

    - if (!core_kernel_data((unsigned long)ops))
    + if (!is_kernel_data((unsigned long)ops))
    ops->flags |= FTRACE_OPS_FL_DYNAMIC;

    add_ftrace_ops(&ftrace_ops_list, ops);
    diff --git a/net/sysctl_net.c b/net/sysctl_net.c
    index f6cb0d4d114c..f1687c351755 100644
    --- a/net/sysctl_net.c
    +++ b/net/sysctl_net.c
    @@ -144,7 +144,7 @@ static void ensure_safe_net_sysctl(struct net *net, const char *path,
    addr = (unsigned long)ent->data;
    if (is_module_address(addr))
    where = "module";
    - else if (core_kernel_data(addr))
    + else if (is_kernel_data(addr))
    where = "kernel";
    else
    continue;
    --
    2.26.2
    \
     
     \ /
      Last update: 2022-09-17 16:10    [W:2.436 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site