diff options
Diffstat (limited to 'arch/arm/include/asm/syscall.h')
| -rw-r--r-- | arch/arm/include/asm/syscall.h | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/include/asm/syscall.h b/arch/arm/include/asm/syscall.h index f1d96d4e8092..73ddd7239b33 100644 --- a/arch/arm/include/asm/syscall.h +++ b/arch/arm/include/asm/syscall.h @@ -57,6 +57,9 @@ static inline void syscall_get_arguments(struct task_struct *task,  					 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; @@ -81,6 +84,9 @@ static inline void syscall_set_arguments(struct task_struct *task,  					 unsigned int i, unsigned int n,  					 const unsigned long *args)  { +	if (n == 0) +		return; +  	if (i + n > SYSCALL_MAX_ARGS) {  		pr_warning("%s called with max args %d, handling only %d\n",  			   __func__, i + n, SYSCALL_MAX_ARGS);  |