[PATCH 4/6] arm64: compat: Remove 32-bit sigreturn code from the vDSO

Vincenzo Frascino vincenzo.frascino at arm.com
Tue Jun 23 07:54:56 EDT 2020



On 6/23/20 9:54 AM, Will Deacon wrote:
> The sigreturn code in the compat vDSO is unused. Remove it.
> 
> Signed-off-by: Will Deacon <will at kernel.org>

Reviewed-by: Vincenzo Frascino <vincenzo.frascino at arm.com>

> ---
>  arch/arm64/kernel/vdso32/Makefile    |  1 -
>  arch/arm64/kernel/vdso32/sigreturn.S | 58 ----------------------------
>  arch/arm64/kernel/vdso32/vdso.lds.S  | 12 ------
>  3 files changed, 71 deletions(-)
>  delete mode 100644 arch/arm64/kernel/vdso32/sigreturn.S
> 
> diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
> index 7ea1e827e505..d88148bef6b0 100644
> --- a/arch/arm64/kernel/vdso32/Makefile
> +++ b/arch/arm64/kernel/vdso32/Makefile
> @@ -140,7 +140,6 @@ hostprogs := $(munge)
>  
>  c-obj-vdso := note.o
>  c-obj-vdso-gettimeofday := vgettimeofday.o
> -asm-obj-vdso := sigreturn.o
>  
>  ifneq ($(c-gettimeofday-y),)
>  VDSO_CFLAGS_gettimeofday_o += -include $(c-gettimeofday-y)
> diff --git a/arch/arm64/kernel/vdso32/sigreturn.S b/arch/arm64/kernel/vdso32/sigreturn.S
> deleted file mode 100644
> index b0091064c3d6..000000000000
> --- a/arch/arm64/kernel/vdso32/sigreturn.S
> +++ /dev/null
> @@ -1,58 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0 */
> -/*
> - * This file provides both A32 and T32 versions, in accordance with the
> - * arm sigreturn code.
> - *
> - * Please read the comments in arch/arm64/kernel/vdso/sigreturn.S to
> - * understand some of the craziness in here.
> - *
> - * Copyright (C) 2018 ARM Limited
> - */
> -
> -#include <linux/linkage.h>
> -#include <asm/asm-offsets.h>
> -#include <asm/unistd.h>
> -
> -	.text
> -
> -	.arm
> -	.fnstart
> -	.save {r0-r15}
> -	.pad #COMPAT_SIGFRAME_REGS_OFFSET
> -	nop
> -SYM_CODE_START(__kernel_sigreturn_arm)
> -	mov r7, #__NR_compat_sigreturn
> -	svc #0
> -	.fnend
> -SYM_CODE_END(__kernel_sigreturn_arm)
> -
> -	.fnstart
> -	.save {r0-r15}
> -	.pad #COMPAT_RT_SIGFRAME_REGS_OFFSET
> -	nop
> -SYM_CODE_START(__kernel_rt_sigreturn_arm)
> -	mov r7, #__NR_compat_rt_sigreturn
> -	svc #0
> -	.fnend
> -SYM_CODE_END(__kernel_rt_sigreturn_arm)
> -
> -	.thumb
> -	.fnstart
> -	.save {r0-r15}
> -	.pad #COMPAT_SIGFRAME_REGS_OFFSET
> -	nop
> -SYM_CODE_START(__kernel_sigreturn_thumb)
> -	mov r7, #__NR_compat_sigreturn
> -	svc #0
> -	.fnend
> -SYM_CODE_END(__kernel_sigreturn_thumb)
> -
> -	.fnstart
> -	.save {r0-r15}
> -	.pad #COMPAT_RT_SIGFRAME_REGS_OFFSET
> -	nop
> -SYM_CODE_START(__kernel_rt_sigreturn_thumb)
> -	mov r7, #__NR_compat_rt_sigreturn
> -	svc #0
> -	.fnend
> -SYM_CODE_END(__kernel_rt_sigreturn_thumb)
> diff --git a/arch/arm64/kernel/vdso32/vdso.lds.S b/arch/arm64/kernel/vdso32/vdso.lds.S
> index a3944927eaeb..337d03522048 100644
> --- a/arch/arm64/kernel/vdso32/vdso.lds.S
> +++ b/arch/arm64/kernel/vdso32/vdso.lds.S
> @@ -64,19 +64,7 @@ VERSION
>  		__vdso_clock_gettime;
>  		__vdso_gettimeofday;
>  		__vdso_clock_getres;
> -		__kernel_sigreturn_arm;
> -		__kernel_sigreturn_thumb;
> -		__kernel_rt_sigreturn_arm;
> -		__kernel_rt_sigreturn_thumb;
>  		__vdso_clock_gettime64;
>  	local: *;
>  	};
>  }
> -
> -/*
> - * Make the sigreturn code visible to the kernel.
> - */
> -VDSO_compat_sigreturn_arm	= __kernel_sigreturn_arm;
> -VDSO_compat_sigreturn_thumb	= __kernel_sigreturn_thumb;
> -VDSO_compat_rt_sigreturn_arm	= __kernel_rt_sigreturn_arm;
> -VDSO_compat_rt_sigreturn_thumb	= __kernel_rt_sigreturn_thumb;
> 

-- 
Regards,
Vincenzo



More information about the linux-arm-kernel mailing list