Re: [PATCH v2 02/19] elf: Move arch_setup_additional_pages() to generic elf.h

From: Christophe Leroy
Date: Tue Nov 24 2020 - 01:12:37 EST




Le 24/11/2020 à 01:29, Dmitry Safonov a écrit :
Ifdef the function in the header, not in the code.
Following kernel style, move it to Kconfig.
All it makes it easier to follow when the option is enabled/disabled.
Remove re-definition from compat_binfmt_elf, as it's always defined
under compat_arch_setup_additional_pages (to be reworked).

Signed-off-by: Dmitry Safonov <dima@xxxxxxxxxx>
---
arch/arm/Kconfig | 1 +
arch/arm/include/asm/elf.h | 5 -----
arch/arm64/Kconfig | 1 +
arch/arm64/include/asm/elf.h | 6 +-----
arch/csky/Kconfig | 1 +
arch/csky/include/asm/elf.h | 4 ----
arch/hexagon/Kconfig | 1 +
arch/hexagon/include/asm/elf.h | 6 ------
arch/mips/Kconfig | 1 +
arch/mips/include/asm/elf.h | 5 -----
arch/nds32/Kconfig | 1 +
arch/nds32/include/asm/elf.h | 3 ---
arch/nios2/Kconfig | 1 +
arch/nios2/include/asm/elf.h | 4 ----
arch/powerpc/Kconfig | 1 +
arch/powerpc/include/asm/elf.h | 5 -----
arch/riscv/Kconfig | 1 +
arch/riscv/include/asm/elf.h | 4 ----
arch/s390/Kconfig | 1 +
arch/s390/include/asm/elf.h | 5 -----
arch/sh/Kconfig | 1 +
arch/sh/include/asm/elf.h | 6 ------
arch/sparc/Kconfig | 1 +
arch/sparc/include/asm/elf_64.h | 6 ------
arch/x86/Kconfig | 1 +
arch/x86/include/asm/elf.h | 4 ----
arch/x86/um/asm/elf.h | 5 -----
fs/Kconfig.binfmt | 3 +++
fs/binfmt_elf.c | 2 --
fs/binfmt_elf_fdpic.c | 3 +--
fs/compat_binfmt_elf.c | 2 --
include/linux/elf.h | 12 ++++++++++++
32 files changed, 30 insertions(+), 73 deletions(-)

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 6fd7d38a60c8..4221f171d1a9 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -134,6 +134,7 @@ config PPC
select ARCH_HAS_PTE_SPECIAL
select ARCH_HAS_MEMBARRIER_CALLBACKS
select ARCH_HAS_MEMBARRIER_SYNC_CORE
+ select ARCH_HAS_SETUP_ADDITIONAL_PAGES

We try to keep alphabetic order on powerpc, should go after ARCH_HAS_SCALED_CPUTIME

select ARCH_HAS_SCALED_CPUTIME if VIRT_CPU_ACCOUNTING_NATIVE && PPC_BOOK3S_64
select ARCH_HAS_STRICT_KERNEL_RWX if (PPC32 && !HIBERNATION)
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
index 53ed2ca40151..ba0e1e331088 100644
--- a/arch/powerpc/include/asm/elf.h
+++ b/arch/powerpc/include/asm/elf.h
@@ -111,11 +111,6 @@ extern int dcache_bsize;
extern int icache_bsize;
extern int ucache_bsize;
-/* vDSO has arch_setup_additional_pages */
-#define ARCH_HAS_SETUP_ADDITIONAL_PAGES
-struct linux_binprm;
-extern int arch_setup_additional_pages(struct linux_binprm *bprm,
- int uses_interp);
#define VDSO_AUX_ENT(a,b) NEW_AUX_ENT(a,b)
/* 1GB for 64bit, 8MB for 32bit */

Christophe