Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -86,11 +86,10 @@ static inline void syscall_get_arguments(struct task_struct *task,
					 unsigned int i, unsigned int n,
					 unsigned long *args)
{
	unsigned long arg;
	int ret;

	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.