Browse Source

MIPS: Fix syscall tracing interface

Fix pointer computation for stack-based arguments.

Signed-off-by: Lars Persson <larper@axis.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/6620/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Lars Persson 11 years ago
parent
commit
86ca57b5a5
1 changed files with 2 additions and 2 deletions
  1. 2 2
      arch/mips/include/asm/syscall.h

+ 2 - 2
arch/mips/include/asm/syscall.h

@@ -40,14 +40,14 @@ static inline unsigned long mips_get_syscall_arg(unsigned long *arg,
 
 
 #ifdef CONFIG_32BIT
 #ifdef CONFIG_32BIT
 	case 4: case 5: case 6: case 7:
 	case 4: case 5: case 6: case 7:
-		return get_user(*arg, (int *)usp + 4 * n);
+		return get_user(*arg, (int *)usp + n);
 #endif
 #endif
 
 
 #ifdef CONFIG_64BIT
 #ifdef CONFIG_64BIT
 	case 4: case 5: case 6: case 7:
 	case 4: case 5: case 6: case 7:
 #ifdef CONFIG_MIPS32_O32
 #ifdef CONFIG_MIPS32_O32
 		if (test_thread_flag(TIF_32BIT_REGS))
 		if (test_thread_flag(TIF_32BIT_REGS))
-			return get_user(*arg, (int *)usp + 4 * n);
+			return get_user(*arg, (int *)usp + n);
 		else
 		else
 #endif
 #endif
 			*arg = regs->regs[4 + n];
 			*arg = regs->regs[4 + n];