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

Christophe Leroy
2020-11-24T06:12:33Z

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@arista.com>
> ---
> 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