Commit a8031d2c authored by Markos Chandras's avatar Markos Chandras Committed by Ralf Baechle

MIPS: asm: syscall: Fix copying system call arguments

The syscall_get_arguments function expects the arguments to be copied
to the '*args' argument but instead a local variable was used to hold
the system call argument. As a result of which, this variable was
never passed to the filter and any filter testing the system call
arguments would fail. This is fixed by passing the '*args' variable
as the destination memory for the system call arguments.
Signed-off-by: default avatarMarkos Chandras <markos.chandras@imgtec.com>
Reviewed-by: default avatarPaul Burton <paul.burton@imgtec.com>
Reviewed-by: default avatarJames Hogan <james.hogan@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/6402/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 7f02c463
...@@ -86,11 +86,10 @@ static inline void syscall_get_arguments(struct task_struct *task, ...@@ -86,11 +86,10 @@ static inline void syscall_get_arguments(struct task_struct *task,
unsigned int i, unsigned int n, unsigned int i, unsigned int n,
unsigned long *args) unsigned long *args)
{ {
unsigned long arg;
int ret; int ret;
while (n--) while (n--)
ret |= mips_get_syscall_arg(&arg, task, regs, i++); ret |= mips_get_syscall_arg(args++, task, regs, i++);
/* /*
* No way to communicate an error because this is a void function. * No way to communicate an error because this is a void function.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment