From: Dave.Martin@arm.com (Dave Martin)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 07/18] arm64: remove sigreturn wrappers
Date: Mon, 14 May 2018 12:07:03 +0100 [thread overview]
Message-ID: <20180514110702.GD7753@e103592.cambridge.arm.com> (raw)
In-Reply-To: <20180514094640.27569-8-mark.rutland@arm.com>
On Mon, May 14, 2018 at 10:46:29AM +0100, Mark Rutland wrote:
> The arm64 sigreturn* syscall handlers are non-standard. Rather than
> taking a number of user parameters in registers as per the AAPCS,
> they expect the pt_regs as their sole argument.
>
> To make this work, we override the syscall definitions to invoke
> wrappers written in assembly, which mov the SP into x0, and branch to
> their respective C functions.
>
> On other architectures (such as x86), the sigreturn* functions take no
> argument and instead use current_pt_regs() to acquire the user
> registers. This requires less boilerplate code, and allows for other
> features such as interposing C code in this path.
Hmmm, I always wondered why rt_sigreturn() et al. were handled
specially.
If there's effectively no underlying reason for that, it makes sense
to regularise the interface to these syscalls.
Tentatively-reviewed-by: Dave Martin <Dave.Martin@arm.com>
>
> This patch takes the same approach for arm64.
>
> Signed-off-by: Mark Rutland <mark.rutland@arm.com>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will.deacon@arm.com>
> ---
> arch/arm64/include/asm/unistd32.h | 4 ++--
> arch/arm64/kernel/entry.S | 8 --------
> arch/arm64/kernel/entry32.S | 10 ----------
> arch/arm64/kernel/signal.c | 3 ++-
> arch/arm64/kernel/signal32.c | 6 ++++--
> arch/arm64/kernel/sys.c | 3 +--
> arch/arm64/kernel/sys32.c | 4 ++--
> 7 files changed, 11 insertions(+), 27 deletions(-)
>
> diff --git a/arch/arm64/include/asm/unistd32.h b/arch/arm64/include/asm/unistd32.h
> index ef292160748c..ab95554b1734 100644
> --- a/arch/arm64/include/asm/unistd32.h
> +++ b/arch/arm64/include/asm/unistd32.h
> @@ -260,7 +260,7 @@ __SYSCALL(117, sys_ni_syscall)
> #define __NR_fsync 118
> __SYSCALL(__NR_fsync, sys_fsync)
> #define __NR_sigreturn 119
> -__SYSCALL(__NR_sigreturn, compat_sys_sigreturn_wrapper)
> +__SYSCALL(__NR_sigreturn, compat_sys_sigreturn)
> #define __NR_clone 120
> __SYSCALL(__NR_clone, sys_clone)
> #define __NR_setdomainname 121
> @@ -368,7 +368,7 @@ __SYSCALL(__NR_getresgid, sys_getresgid16)
> #define __NR_prctl 172
> __SYSCALL(__NR_prctl, sys_prctl)
> #define __NR_rt_sigreturn 173
> -__SYSCALL(__NR_rt_sigreturn, compat_sys_rt_sigreturn_wrapper)
> +__SYSCALL(__NR_rt_sigreturn, compat_sys_rt_sigreturn)
> #define __NR_rt_sigaction 174
> __SYSCALL(__NR_rt_sigaction, compat_sys_rt_sigaction)
> #define __NR_rt_sigprocmask 175
> diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S
> index ec2ee720e33e..08ea3cbfb08f 100644
> --- a/arch/arm64/kernel/entry.S
> +++ b/arch/arm64/kernel/entry.S
> @@ -1108,14 +1108,6 @@ __entry_tramp_data_start:
> #endif /* CONFIG_UNMAP_KERNEL_AT_EL0 */
>
> /*
> - * Special system call wrappers.
> - */
> -ENTRY(sys_rt_sigreturn_wrapper)
> - mov x0, sp
> - b sys_rt_sigreturn
> -ENDPROC(sys_rt_sigreturn_wrapper)
> -
> -/*
> * Register switch for AArch64. The callee-saved registers need to be saved
> * and restored. On entry:
> * x0 = previous task_struct (must be preserved across the switch)
> diff --git a/arch/arm64/kernel/entry32.S b/arch/arm64/kernel/entry32.S
> index f332d5d1f6b4..f9461696dde4 100644
> --- a/arch/arm64/kernel/entry32.S
> +++ b/arch/arm64/kernel/entry32.S
> @@ -30,16 +30,6 @@
> * System call wrappers for the AArch32 compatibility layer.
> */
>
> -ENTRY(compat_sys_sigreturn_wrapper)
> - mov x0, sp
> - b compat_sys_sigreturn
> -ENDPROC(compat_sys_sigreturn_wrapper)
> -
> -ENTRY(compat_sys_rt_sigreturn_wrapper)
> - mov x0, sp
> - b compat_sys_rt_sigreturn
> -ENDPROC(compat_sys_rt_sigreturn_wrapper)
> -
> ENTRY(compat_sys_statfs64_wrapper)
> mov w3, #84
> cmp w1, #88
> diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c
> index 8e624fec4707..caa7a68cf2d2 100644
> --- a/arch/arm64/kernel/signal.c
> +++ b/arch/arm64/kernel/signal.c
> @@ -538,8 +538,9 @@ static int restore_sigframe(struct pt_regs *regs,
> return err;
> }
>
> -asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
> +asmlinkage long sys_rt_sigreturn(void)
> {
> + struct pt_regs *regs = current_pt_regs();
> struct rt_sigframe __user *frame;
>
> /* Always make any pending restarted system calls return -EINTR */
> diff --git a/arch/arm64/kernel/signal32.c b/arch/arm64/kernel/signal32.c
> index 77b91f478995..cb10588a7cb2 100644
> --- a/arch/arm64/kernel/signal32.c
> +++ b/arch/arm64/kernel/signal32.c
> @@ -282,8 +282,9 @@ static int compat_restore_sigframe(struct pt_regs *regs,
> return err;
> }
>
> -asmlinkage int compat_sys_sigreturn(struct pt_regs *regs)
> +asmlinkage int compat_sys_sigreturn(void)
> {
> + struct pt_regs *regs = current_pt_regs();
> struct compat_sigframe __user *frame;
>
> /* Always make any pending restarted system calls return -EINTR */
> @@ -312,8 +313,9 @@ asmlinkage int compat_sys_sigreturn(struct pt_regs *regs)
> return 0;
> }
>
> -asmlinkage int compat_sys_rt_sigreturn(struct pt_regs *regs)
> +asmlinkage int compat_sys_rt_sigreturn(void)
> {
> + struct pt_regs *regs = current_pt_regs();
> struct compat_rt_sigframe __user *frame;
>
> /* Always make any pending restarted system calls return -EINTR */
> diff --git a/arch/arm64/kernel/sys.c b/arch/arm64/kernel/sys.c
> index 72981bae10eb..31045f3fed92 100644
> --- a/arch/arm64/kernel/sys.c
> +++ b/arch/arm64/kernel/sys.c
> @@ -48,8 +48,7 @@ SYSCALL_DEFINE1(arm64_personality, unsigned int, personality)
> /*
> * Wrappers to pass the pt_regs argument.
> */
> -asmlinkage long sys_rt_sigreturn_wrapper(void);
> -#define sys_rt_sigreturn sys_rt_sigreturn_wrapper
> +asmlinkage long sys_rt_sigreturn(void);
> #define sys_personality sys_arm64_personality
>
> #undef __SYSCALL
> diff --git a/arch/arm64/kernel/sys32.c b/arch/arm64/kernel/sys32.c
> index a40b1343b819..1ef103c95410 100644
> --- a/arch/arm64/kernel/sys32.c
> +++ b/arch/arm64/kernel/sys32.c
> @@ -25,8 +25,8 @@
> #include <linux/compiler.h>
> #include <linux/syscalls.h>
>
> -asmlinkage long compat_sys_sigreturn_wrapper(void);
> -asmlinkage long compat_sys_rt_sigreturn_wrapper(void);
> +asmlinkage long compat_sys_sigreturn(void);
> +asmlinkage long compat_sys_rt_sigreturn(void);
> asmlinkage long compat_sys_statfs64_wrapper(void);
> asmlinkage long compat_sys_fstatfs64_wrapper(void);
> asmlinkage long compat_sys_pread64_wrapper(void);
> --
> 2.11.0
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Dave Martin <Dave.Martin@arm.com>
To: Mark Rutland <mark.rutland@arm.com>
Cc: linux-arm-kernel@lists.infradead.org, marc.zyngier@arm.com,
catalin.marinas@arm.com, will.deacon@arm.com,
linux-kernel@vger.kernel.org, linux@dominikbrodowski.net,
james.morse@arm.com, viro@zeniv.linux.org.uk,
linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 07/18] arm64: remove sigreturn wrappers
Date: Mon, 14 May 2018 12:07:03 +0100 [thread overview]
Message-ID: <20180514110702.GD7753@e103592.cambridge.arm.com> (raw)
In-Reply-To: <20180514094640.27569-8-mark.rutland@arm.com>
On Mon, May 14, 2018 at 10:46:29AM +0100, Mark Rutland wrote:
> The arm64 sigreturn* syscall handlers are non-standard. Rather than
> taking a number of user parameters in registers as per the AAPCS,
> they expect the pt_regs as their sole argument.
>
> To make this work, we override the syscall definitions to invoke
> wrappers written in assembly, which mov the SP into x0, and branch to
> their respective C functions.
>
> On other architectures (such as x86), the sigreturn* functions take no
> argument and instead use current_pt_regs() to acquire the user
> registers. This requires less boilerplate code, and allows for other
> features such as interposing C code in this path.
Hmmm, I always wondered why rt_sigreturn() et al. were handled
specially.
If there's effectively no underlying reason for that, it makes sense
to regularise the interface to these syscalls.
Tentatively-reviewed-by: Dave Martin <Dave.Martin@arm.com>
>
> This patch takes the same approach for arm64.
>
> Signed-off-by: Mark Rutland <mark.rutland@arm.com>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will.deacon@arm.com>
> ---
> arch/arm64/include/asm/unistd32.h | 4 ++--
> arch/arm64/kernel/entry.S | 8 --------
> arch/arm64/kernel/entry32.S | 10 ----------
> arch/arm64/kernel/signal.c | 3 ++-
> arch/arm64/kernel/signal32.c | 6 ++++--
> arch/arm64/kernel/sys.c | 3 +--
> arch/arm64/kernel/sys32.c | 4 ++--
> 7 files changed, 11 insertions(+), 27 deletions(-)
>
> diff --git a/arch/arm64/include/asm/unistd32.h b/arch/arm64/include/asm/unistd32.h
> index ef292160748c..ab95554b1734 100644
> --- a/arch/arm64/include/asm/unistd32.h
> +++ b/arch/arm64/include/asm/unistd32.h
> @@ -260,7 +260,7 @@ __SYSCALL(117, sys_ni_syscall)
> #define __NR_fsync 118
> __SYSCALL(__NR_fsync, sys_fsync)
> #define __NR_sigreturn 119
> -__SYSCALL(__NR_sigreturn, compat_sys_sigreturn_wrapper)
> +__SYSCALL(__NR_sigreturn, compat_sys_sigreturn)
> #define __NR_clone 120
> __SYSCALL(__NR_clone, sys_clone)
> #define __NR_setdomainname 121
> @@ -368,7 +368,7 @@ __SYSCALL(__NR_getresgid, sys_getresgid16)
> #define __NR_prctl 172
> __SYSCALL(__NR_prctl, sys_prctl)
> #define __NR_rt_sigreturn 173
> -__SYSCALL(__NR_rt_sigreturn, compat_sys_rt_sigreturn_wrapper)
> +__SYSCALL(__NR_rt_sigreturn, compat_sys_rt_sigreturn)
> #define __NR_rt_sigaction 174
> __SYSCALL(__NR_rt_sigaction, compat_sys_rt_sigaction)
> #define __NR_rt_sigprocmask 175
> diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S
> index ec2ee720e33e..08ea3cbfb08f 100644
> --- a/arch/arm64/kernel/entry.S
> +++ b/arch/arm64/kernel/entry.S
> @@ -1108,14 +1108,6 @@ __entry_tramp_data_start:
> #endif /* CONFIG_UNMAP_KERNEL_AT_EL0 */
>
> /*
> - * Special system call wrappers.
> - */
> -ENTRY(sys_rt_sigreturn_wrapper)
> - mov x0, sp
> - b sys_rt_sigreturn
> -ENDPROC(sys_rt_sigreturn_wrapper)
> -
> -/*
> * Register switch for AArch64. The callee-saved registers need to be saved
> * and restored. On entry:
> * x0 = previous task_struct (must be preserved across the switch)
> diff --git a/arch/arm64/kernel/entry32.S b/arch/arm64/kernel/entry32.S
> index f332d5d1f6b4..f9461696dde4 100644
> --- a/arch/arm64/kernel/entry32.S
> +++ b/arch/arm64/kernel/entry32.S
> @@ -30,16 +30,6 @@
> * System call wrappers for the AArch32 compatibility layer.
> */
>
> -ENTRY(compat_sys_sigreturn_wrapper)
> - mov x0, sp
> - b compat_sys_sigreturn
> -ENDPROC(compat_sys_sigreturn_wrapper)
> -
> -ENTRY(compat_sys_rt_sigreturn_wrapper)
> - mov x0, sp
> - b compat_sys_rt_sigreturn
> -ENDPROC(compat_sys_rt_sigreturn_wrapper)
> -
> ENTRY(compat_sys_statfs64_wrapper)
> mov w3, #84
> cmp w1, #88
> diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c
> index 8e624fec4707..caa7a68cf2d2 100644
> --- a/arch/arm64/kernel/signal.c
> +++ b/arch/arm64/kernel/signal.c
> @@ -538,8 +538,9 @@ static int restore_sigframe(struct pt_regs *regs,
> return err;
> }
>
> -asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
> +asmlinkage long sys_rt_sigreturn(void)
> {
> + struct pt_regs *regs = current_pt_regs();
> struct rt_sigframe __user *frame;
>
> /* Always make any pending restarted system calls return -EINTR */
> diff --git a/arch/arm64/kernel/signal32.c b/arch/arm64/kernel/signal32.c
> index 77b91f478995..cb10588a7cb2 100644
> --- a/arch/arm64/kernel/signal32.c
> +++ b/arch/arm64/kernel/signal32.c
> @@ -282,8 +282,9 @@ static int compat_restore_sigframe(struct pt_regs *regs,
> return err;
> }
>
> -asmlinkage int compat_sys_sigreturn(struct pt_regs *regs)
> +asmlinkage int compat_sys_sigreturn(void)
> {
> + struct pt_regs *regs = current_pt_regs();
> struct compat_sigframe __user *frame;
>
> /* Always make any pending restarted system calls return -EINTR */
> @@ -312,8 +313,9 @@ asmlinkage int compat_sys_sigreturn(struct pt_regs *regs)
> return 0;
> }
>
> -asmlinkage int compat_sys_rt_sigreturn(struct pt_regs *regs)
> +asmlinkage int compat_sys_rt_sigreturn(void)
> {
> + struct pt_regs *regs = current_pt_regs();
> struct compat_rt_sigframe __user *frame;
>
> /* Always make any pending restarted system calls return -EINTR */
> diff --git a/arch/arm64/kernel/sys.c b/arch/arm64/kernel/sys.c
> index 72981bae10eb..31045f3fed92 100644
> --- a/arch/arm64/kernel/sys.c
> +++ b/arch/arm64/kernel/sys.c
> @@ -48,8 +48,7 @@ SYSCALL_DEFINE1(arm64_personality, unsigned int, personality)
> /*
> * Wrappers to pass the pt_regs argument.
> */
> -asmlinkage long sys_rt_sigreturn_wrapper(void);
> -#define sys_rt_sigreturn sys_rt_sigreturn_wrapper
> +asmlinkage long sys_rt_sigreturn(void);
> #define sys_personality sys_arm64_personality
>
> #undef __SYSCALL
> diff --git a/arch/arm64/kernel/sys32.c b/arch/arm64/kernel/sys32.c
> index a40b1343b819..1ef103c95410 100644
> --- a/arch/arm64/kernel/sys32.c
> +++ b/arch/arm64/kernel/sys32.c
> @@ -25,8 +25,8 @@
> #include <linux/compiler.h>
> #include <linux/syscalls.h>
>
> -asmlinkage long compat_sys_sigreturn_wrapper(void);
> -asmlinkage long compat_sys_rt_sigreturn_wrapper(void);
> +asmlinkage long compat_sys_sigreturn(void);
> +asmlinkage long compat_sys_rt_sigreturn(void);
> asmlinkage long compat_sys_statfs64_wrapper(void);
> asmlinkage long compat_sys_fstatfs64_wrapper(void);
> asmlinkage long compat_sys_pread64_wrapper(void);
> --
> 2.11.0
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2018-05-14 11:07 UTC|newest]
Thread overview: 126+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-14 9:46 [PATCH 00/18] arm64: invoke syscalls with pt_regs Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 9:46 ` [PATCH 01/18] arm64: consistently use unsigned long for thread flags Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 9:57 ` Dave Martin
2018-05-14 9:57 ` Dave Martin
2018-05-14 9:46 ` [PATCH 02/18] arm64: move SCTLR_EL{1,2} assertions to <asm/sysreg.h> Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 10:00 ` Dave Martin
2018-05-14 10:00 ` Dave Martin
2018-05-14 10:08 ` Mark Rutland
2018-05-14 10:08 ` Mark Rutland
2018-05-14 11:20 ` Dave Martin
2018-05-14 11:20 ` Dave Martin
2018-05-14 11:56 ` Robin Murphy
2018-05-14 11:56 ` Robin Murphy
2018-05-14 12:06 ` Mark Rutland
2018-05-14 12:06 ` Mark Rutland
2018-05-14 12:41 ` Dave Martin
2018-05-14 12:41 ` Dave Martin
2018-05-14 13:10 ` Mark Rutland
2018-05-14 13:10 ` Mark Rutland
2018-05-14 9:46 ` [PATCH 03/18] arm64: introduce sysreg_clear_set() Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 10:04 ` Dave Martin
2018-05-14 10:04 ` Dave Martin
2018-05-14 9:46 ` [PATCH 04/18] arm64: kill config_sctlr_el1() Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 10:05 ` Dave Martin
2018-05-14 10:05 ` Dave Martin
2018-05-14 9:46 ` [PATCH 05/18] arm64: kill change_cpacr() Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 10:06 ` Dave Martin
2018-05-14 10:06 ` Dave Martin
2018-05-14 9:46 ` [PATCH 06/18] arm64: move sve_user_{enable, disable} to <asm/fpsimd.h> Mark Rutland
2018-05-14 9:46 ` [PATCH 06/18] arm64: move sve_user_{enable,disable} " Mark Rutland
2018-05-14 11:06 ` [PATCH 06/18] arm64: move sve_user_{enable, disable} " Dave Martin
2018-05-14 11:06 ` Dave Martin
2018-05-15 10:39 ` Mark Rutland
2018-05-15 10:39 ` Mark Rutland
2018-05-15 12:19 ` Dave Martin
2018-05-15 12:19 ` Dave Martin
2018-05-15 16:33 ` Mark Rutland
2018-05-15 16:33 ` Mark Rutland
2018-05-16 9:01 ` Dave Martin
2018-05-16 9:01 ` Dave Martin
2018-06-01 10:29 ` Mark Rutland
2018-06-01 10:29 ` Mark Rutland
2018-06-01 10:42 ` Dave Martin
2018-06-01 10:42 ` Dave Martin
2018-05-14 9:46 ` [PATCH 07/18] arm64: remove sigreturn wrappers Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 11:07 ` Dave Martin [this message]
2018-05-14 11:07 ` Dave Martin
2018-05-14 9:46 ` [PATCH 08/18] arm64: convert raw syscall invocation to C Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 11:07 ` Dave Martin
2018-05-14 11:07 ` Dave Martin
2018-05-14 11:41 ` Mark Rutland
2018-05-14 11:41 ` Mark Rutland
2018-05-14 12:53 ` Dave Martin
2018-05-14 12:53 ` Dave Martin
2018-05-14 20:24 ` Dominik Brodowski
2018-05-14 20:24 ` Dominik Brodowski
2018-05-15 8:22 ` Mark Rutland
2018-05-15 8:22 ` Mark Rutland
2018-05-15 10:01 ` Dominik Brodowski
2018-05-15 10:01 ` Dominik Brodowski
2018-05-15 10:13 ` Mark Rutland
2018-05-15 10:13 ` Mark Rutland
2018-05-14 18:00 ` Dominik Brodowski
2018-05-14 18:00 ` Dominik Brodowski
2018-05-15 8:18 ` Mark Rutland
2018-05-15 8:18 ` Mark Rutland
2018-05-14 9:46 ` [PATCH 09/18] arm64: convert syscall trace logic " Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 9:46 ` [PATCH 10/18] arm64: convert native/compat syscall entry " Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 11:07 ` Dave Martin
2018-05-14 11:07 ` Dave Martin
2018-05-14 11:58 ` Mark Rutland
2018-05-14 11:58 ` Mark Rutland
2018-05-14 14:43 ` Dave Martin
2018-05-14 14:43 ` Dave Martin
2018-05-14 15:01 ` Mark Rutland
2018-05-14 15:01 ` Mark Rutland
2018-05-14 9:46 ` [PATCH 11/18] arm64: zero GPRs upon entry from EL0 Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 11:07 ` Dave Martin
2018-05-14 11:07 ` Dave Martin
2018-05-14 9:46 ` [PATCH 12/18] kernel: add ksys_personality() Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 11:08 ` Dave Martin
2018-05-14 11:08 ` Dave Martin
2018-05-14 12:07 ` Christoph Hellwig
2018-05-14 12:07 ` Christoph Hellwig
2018-05-15 9:56 ` Mark Rutland
2018-05-15 9:56 ` Mark Rutland
2018-05-14 9:46 ` [PATCH 13/18] kernel: add kcompat_sys_{f,}statfs64() Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 17:14 ` Mark Rutland
2018-05-14 17:14 ` Mark Rutland
2018-05-14 20:34 ` Dominik Brodowski
2018-05-14 20:34 ` Dominik Brodowski
2018-05-15 9:53 ` Mark Rutland
2018-05-15 9:53 ` Mark Rutland
2018-05-15 9:58 ` Dominik Brodowski
2018-05-15 9:58 ` Dominik Brodowski
2018-05-14 9:46 ` [PATCH 14/18] arm64: remove in-kernel call to sys_personality() Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 9:46 ` [PATCH 15/18] arm64: use {COMPAT,}SYSCALL_DEFINE0 for sigreturn Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 9:46 ` [PATCH 16/18] arm64: use SYSCALL_DEFINE6() for mmap Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 9:46 ` [PATCH 17/18] arm64: convert compat wrappers to C Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 12:10 ` Christoph Hellwig
2018-05-14 12:10 ` Christoph Hellwig
2018-05-14 12:43 ` Mark Rutland
2018-05-14 12:43 ` Mark Rutland
2018-05-14 9:46 ` [PATCH 18/18] arm64: implement syscall wrappers Mark Rutland
2018-05-14 9:46 ` Mark Rutland
2018-05-14 20:57 ` Dominik Brodowski
2018-05-14 20:57 ` Dominik Brodowski
2018-05-15 8:37 ` Mark Rutland
2018-05-15 8:37 ` Mark Rutland
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180514110702.GD7753@e103592.cambridge.arm.com \
--to=dave.martin@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.