diff options
| -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, | |||
| 57 | unsigned int i, unsigned int n, | 57 | unsigned int i, unsigned int n, |
| 58 | unsigned long *args) | 58 | unsigned long *args) |
| 59 | { | 59 | { |
| 60 | if (n == 0) | ||
| 61 | return; | ||
| 62 | |||
| 60 | if (i + n > SYSCALL_MAX_ARGS) { | 63 | if (i + n > SYSCALL_MAX_ARGS) { |
| 61 | unsigned long *args_bad = args + SYSCALL_MAX_ARGS - i; | 64 | unsigned long *args_bad = args + SYSCALL_MAX_ARGS - i; |
| 62 | unsigned int n_bad = n + i - SYSCALL_MAX_ARGS; | 65 | unsigned int n_bad = n + i - SYSCALL_MAX_ARGS; |
| @@ -81,6 +84,9 @@ static inline void syscall_set_arguments(struct task_struct *task, | |||
| 81 | unsigned int i, unsigned int n, | 84 | unsigned int i, unsigned int n, |
| 82 | const unsigned long *args) | 85 | const unsigned long *args) |
| 83 | { | 86 | { |
| 87 | if (n == 0) | ||
| 88 | return; | ||
| 89 | |||
| 84 | if (i + n > SYSCALL_MAX_ARGS) { | 90 | if (i + n > SYSCALL_MAX_ARGS) { |
| 85 | pr_warning("%s called with max args %d, handling only %d\n", | 91 | pr_warning("%s called with max args %d, handling only %d\n", |
| 86 | __func__, i + n, SYSCALL_MAX_ARGS); | 92 | __func__, i + n, SYSCALL_MAX_ARGS); |
