@@ -376,7 +376,7 @@ static int __bpf_arch_text_poke(void *ip, enum bpf_text_poke_type t,
int bpf_arch_text_poke(void *ip, enum bpf_text_poke_type t,
void *old_addr, void *new_addr)
{
- if (!is_kernel_text((long)ip) &&
+ if (!is_kernel_text_or_gate_area((long)ip) &&
!is_bpf_text_address((long)ip))
/* BPF poking in modules is not supported */
return -EINVAL;
@@ -23,14 +23,14 @@
struct cred;
struct module;
-static inline int is_kernel_text(unsigned long addr)
+static inline int is_kernel_text_or_gate_area(unsigned long addr)
{
if ((addr >= (unsigned long)_stext && addr < (unsigned long)_etext))
return 1;
return in_gate_area_no_mm(addr);
}
-static inline int is_kernel(unsigned long addr)
+static inline int is_kernel_or_gate_area(unsigned long addr)
{
if (addr >= (unsigned long)_stext && addr < (unsigned long)_end)
return 1;
@@ -40,9 +40,9 @@ static inline int is_kernel(unsigned long addr)
static inline int is_ksym_addr(unsigned long addr)
{
if (IS_ENABLED(CONFIG_KALLSYMS_ALL))
- return is_kernel(addr);
+ return is_kernel_or_gate_area(addr);
- return is_kernel_text(addr) || is_kernel_inittext(addr);
+ return is_kernel_text_or_gate_area(addr) || is_kernel_inittext(addr);
}
static inline void *dereference_symbol_descriptor(void *ptr)
@@ -282,7 +282,7 @@ static inline cfi_check_fn find_check_fn(unsigned long ptr)
{
cfi_check_fn fn = NULL;
- if (is_kernel_text(ptr))
+ if (is_kernel_text_or_gate_area(ptr))
return __cfi_check;
/*
The is_kernel[_text]() function check the address whether or not in kernel[_text] ranges, also they will check the address whether or not in gate area, so use better name. Cc: Alexei Starovoitov <ast@kernel.org> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: Sami Tolvanen <samitolvanen@google.com> Cc: Nathan Chancellor <nathan@kernel.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: bpf@vger.kernel.org Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> --- arch/x86/net/bpf_jit_comp.c | 2 +- include/linux/kallsyms.h | 8 ++++---- kernel/cfi.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-)