Commit b56cd05c authored by Jiri Olsa's avatar Jiri Olsa Committed by Alexei Starovoitov

x86/mm: Rename is_kernel_text to __is_kernel_text

The kbuild test robot reported compile issue on x86 in one of
the following patches that adds <linux/kallsyms.h> include into
<linux/bpf.h>, which is picked up by init_32.c object.

The problem is that <linux/kallsyms.h> defines global function
is_kernel_text which colides with the static function of the
same name defined in init_32.c:

  $ make ARCH=i386
  ...
  >> arch/x86/mm/init_32.c:241:19: error: redefinition of 'is_kernel_text'
    static inline int is_kernel_text(unsigned long addr)
                      ^~~~~~~~~~~~~~
   In file included from include/linux/bpf.h:21:0,
                    from include/linux/bpf-cgroup.h:5,
                    from include/linux/cgroup-defs.h:22,
                    from include/linux/cgroup.h:28,
                    from include/linux/hugetlb.h:9,
                    from arch/x86/mm/init_32.c:18:
   include/linux/kallsyms.h:31:19: note: previous definition of 'is_kernel_text' was here
    static inline int is_kernel_text(unsigned long addr)

Renaming the init_32.c is_kernel_text function to __is_kernel_text.
Reported-by: default avatarkbuild test robot <lkp@intel.com>
Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
Acked-by: default avatarSong Liu <songliubraving@fb.com>
Link: https://lore.kernel.org/bpf/20200312195610.346362-2-jolsa@kernel.orgSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 98868668
...@@ -238,7 +238,11 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base) ...@@ -238,7 +238,11 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
} }
} }
static inline int is_kernel_text(unsigned long addr) /*
* The <linux/kallsyms.h> already defines is_kernel_text,
* using '__' prefix not to get in conflict.
*/
static inline int __is_kernel_text(unsigned long addr)
{ {
if (addr >= (unsigned long)_text && addr <= (unsigned long)__init_end) if (addr >= (unsigned long)_text && addr <= (unsigned long)__init_end)
return 1; return 1;
...@@ -328,8 +332,8 @@ kernel_physical_mapping_init(unsigned long start, ...@@ -328,8 +332,8 @@ kernel_physical_mapping_init(unsigned long start,
addr2 = (pfn + PTRS_PER_PTE-1) * PAGE_SIZE + addr2 = (pfn + PTRS_PER_PTE-1) * PAGE_SIZE +
PAGE_OFFSET + PAGE_SIZE-1; PAGE_OFFSET + PAGE_SIZE-1;
if (is_kernel_text(addr) || if (__is_kernel_text(addr) ||
is_kernel_text(addr2)) __is_kernel_text(addr2))
prot = PAGE_KERNEL_LARGE_EXEC; prot = PAGE_KERNEL_LARGE_EXEC;
pages_2m++; pages_2m++;
...@@ -354,7 +358,7 @@ kernel_physical_mapping_init(unsigned long start, ...@@ -354,7 +358,7 @@ kernel_physical_mapping_init(unsigned long start,
*/ */
pgprot_t init_prot = __pgprot(PTE_IDENT_ATTR); pgprot_t init_prot = __pgprot(PTE_IDENT_ATTR);
if (is_kernel_text(addr)) if (__is_kernel_text(addr))
prot = PAGE_KERNEL_EXEC; prot = PAGE_KERNEL_EXEC;
pages_4k++; pages_4k++;
...@@ -881,7 +885,7 @@ static void mark_nxdata_nx(void) ...@@ -881,7 +885,7 @@ static void mark_nxdata_nx(void)
*/ */
unsigned long start = PFN_ALIGN(_etext); unsigned long start = PFN_ALIGN(_etext);
/* /*
* This comes from is_kernel_text upper limit. Also HPAGE where used: * This comes from __is_kernel_text upper limit. Also HPAGE where used:
*/ */
unsigned long size = (((unsigned long)__init_end + HPAGE_SIZE) & HPAGE_MASK) - start; unsigned long size = (((unsigned long)__init_end + HPAGE_SIZE) & HPAGE_MASK) - start;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment