powerpc: Finalise cleanup around ABI use
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Mon, 9 May 2022 05:36:08 +0000 (07:36 +0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 19 May 2022 13:11:29 +0000 (23:11 +1000)
Now that we have CONFIG_PPC64_ELF_ABI_V1 and CONFIG_PPC64_ELF_ABI_V2,
get rid of all indirect detection of ABI version.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/709d9d69523c14c8a9fba4486395dca0f2d675b1.1652074503.git.christophe.leroy@csgroup.eu
arch/powerpc/Kconfig
arch/powerpc/Makefile
arch/powerpc/include/asm/types.h
arch/powerpc/kernel/fadump.c
arch/powerpc/kernel/ptrace/ptrace.c
arch/powerpc/net/bpf_jit_comp64.c

index 145af02..06b5ef6 100644 (file)
@@ -208,7 +208,7 @@ config PPC
        select HAVE_EFFICIENT_UNALIGNED_ACCESS  if !(CPU_LITTLE_ENDIAN && POWER7_CPU)
        select HAVE_FAST_GUP
        select HAVE_FTRACE_MCOUNT_RECORD
-       select HAVE_FUNCTION_DESCRIPTORS        if PPC64 && !CPU_LITTLE_ENDIAN
+       select HAVE_FUNCTION_DESCRIPTORS        if PPC64_ELF_ABI_V1
        select HAVE_FUNCTION_ERROR_INJECTION
        select HAVE_FUNCTION_GRAPH_TRACER
        select HAVE_FUNCTION_TRACER
index 1ba98be..8bd3b63 100644 (file)
@@ -213,7 +213,7 @@ CHECKFLAGS  += -m$(BITS) -D__powerpc__ -D__powerpc$(BITS)__
 ifdef CONFIG_CPU_BIG_ENDIAN
 CHECKFLAGS     += -D__BIG_ENDIAN__
 else
-CHECKFLAGS     += -D__LITTLE_ENDIAN__ -D_CALL_ELF=2
+CHECKFLAGS     += -D__LITTLE_ENDIAN__
 endif
 
 ifdef CONFIG_476FPE_ERR46
index 84078c2..93157a6 100644 (file)
 
 #include <uapi/asm/types.h>
 
-#ifdef __powerpc64__
-#if defined(_CALL_ELF) && _CALL_ELF == 2
-#define PPC64_ELF_ABI_v2 1
-#else
-#define PPC64_ELF_ABI_v1 1
-#endif
-#endif /* __powerpc64__ */
-
 #ifndef __ASSEMBLY__
 
 typedef __vector128 vector128;
index bfb671f..a171d0f 100644 (file)
@@ -978,11 +978,14 @@ static int fadump_init_elfcore_header(char *bufp)
        elf->e_entry = 0;
        elf->e_phoff = sizeof(struct elfhdr);
        elf->e_shoff = 0;
-#if defined(_CALL_ELF)
-       elf->e_flags = _CALL_ELF;
-#else
-       elf->e_flags = 0;
-#endif
+
+       if (IS_ENABLED(CONFIG_PPC64_ELF_ABI_V2))
+               elf->e_flags = 2;
+       else if (IS_ENABLED(CONFIG_PPC64_ELF_ABI_V1))
+               elf->e_flags = 1;
+       else
+               elf->e_flags = 0;
+
        elf->e_ehsize = sizeof(struct elfhdr);
        elf->e_phentsize = sizeof(struct elf_phdr);
        elf->e_phnum = 0;
index 9fbe155..4d2dc22 100644 (file)
@@ -444,10 +444,4 @@ void __init pt_regs_check(void)
         * real registers.
         */
        BUILD_BUG_ON(PT_DSCR < sizeof(struct user_pt_regs) / sizeof(unsigned long));
-
-#ifdef CONFIG_PPC64_ELF_ABI_V1
-       BUILD_BUG_ON(!IS_ENABLED(CONFIG_HAVE_FUNCTION_DESCRIPTORS));
-#else
-       BUILD_BUG_ON(IS_ENABLED(CONFIG_HAVE_FUNCTION_DESCRIPTORS));
-#endif
 }
index d7b42f4..594c549 100644 (file)
@@ -126,7 +126,7 @@ void bpf_jit_build_prologue(u32 *image, struct codegen_context *ctx)
 {
        int i;
 
-       if (__is_defined(CONFIG_PPC64_ELF_ABI_V2))
+       if (IS_ENABLED(CONFIG_PPC64_ELF_ABI_V2))
                EMIT(PPC_RAW_LD(_R2, _R13, offsetof(struct paca_struct, kernel_toc)));
 
        /*
@@ -266,7 +266,7 @@ static int bpf_jit_emit_tail_call(u32 *image, struct codegen_context *ctx, u32 o
        int b2p_index = bpf_to_ppc(BPF_REG_3);
        int bpf_tailcall_prologue_size = 8;
 
-       if (__is_defined(CONFIG_PPC64_ELF_ABI_V2))
+       if (IS_ENABLED(CONFIG_PPC64_ELF_ABI_V2))
                bpf_tailcall_prologue_size += 4; /* skip past the toc load */
 
        /*