diff options
| author | Thomas Gleixner <[email protected]> | 2019-05-06 12:04:12 +0200 | 
|---|---|---|
| committer | Thomas Gleixner <[email protected]> | 2019-05-06 12:04:12 +0200 | 
| commit | fb4e0592654adb31bc6f3a738d6499b816a655d6 (patch) | |
| tree | e6edaf18cf3a7f49e93fb51de5a47f4b9e786f53 /arch/arm/include/asm/syscall.h | |
| parent | 471ba0e686cb13752bc1ff3216c54b69a2d250ea (diff) | |
| parent | 16e32c3cde7763ab875b9030b443ecbc8e352d8a (diff) | |
Merge tag 'irqchip-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/core
Pull irqchip updates from Marc Zyngier
- The huge (and terrifying) TI INTR/INTA set of drivers
- Rewrite of the stm32mp1-exti driver as a platform driver
- Update the IOMMU MSI mapping API to be RT friendly
- A number of cleanups and other low impact fixes
Diffstat (limited to 'arch/arm/include/asm/syscall.h')
| -rw-r--r-- | arch/arm/include/asm/syscall.h | 47 | 
1 files changed, 8 insertions, 39 deletions
| diff --git a/arch/arm/include/asm/syscall.h b/arch/arm/include/asm/syscall.h index 06dea6bce293..080ce70cab12 100644 --- a/arch/arm/include/asm/syscall.h +++ b/arch/arm/include/asm/syscall.h @@ -55,53 +55,22 @@ static inline void syscall_set_return_value(struct task_struct *task,  static inline void syscall_get_arguments(struct task_struct *task,  					 struct pt_regs *regs, -					 unsigned int i, unsigned int n,  					 unsigned long *args)  { -	if (n == 0) -		return; - -	if (i + n > SYSCALL_MAX_ARGS) { -		unsigned long *args_bad = args + SYSCALL_MAX_ARGS - i; -		unsigned int n_bad = n + i - SYSCALL_MAX_ARGS; -		pr_warn("%s called with max args %d, handling only %d\n", -			__func__, i + n, SYSCALL_MAX_ARGS); -		memset(args_bad, 0, n_bad * sizeof(args[0])); -		n = SYSCALL_MAX_ARGS - i; -	} - -	if (i == 0) { -		args[0] = regs->ARM_ORIG_r0; -		args++; -		i++; -		n--; -	} - -	memcpy(args, ®s->ARM_r0 + i, n * sizeof(args[0])); +	args[0] = regs->ARM_ORIG_r0; +	args++; + +	memcpy(args, ®s->ARM_r0 + 1, 5 * sizeof(args[0]));  }  static inline void syscall_set_arguments(struct task_struct *task,  					 struct pt_regs *regs, -					 unsigned int i, unsigned int n,  					 const unsigned long *args)  { -	if (n == 0) -		return; - -	if (i + n > SYSCALL_MAX_ARGS) { -		pr_warn("%s called with max args %d, handling only %d\n", -			__func__, i + n, SYSCALL_MAX_ARGS); -		n = SYSCALL_MAX_ARGS - i; -	} - -	if (i == 0) { -		regs->ARM_ORIG_r0 = args[0]; -		args++; -		i++; -		n--; -	} - -	memcpy(®s->ARM_r0 + i, args, n * sizeof(args[0])); +	regs->ARM_ORIG_r0 = args[0]; +	args++; + +	memcpy(®s->ARM_r0 + 1, args, 5 * sizeof(args[0]));  }  static inline int syscall_get_arch(void) |