forked from mirrors/linux
		
	MIPS: Fix syscall_get_nr for the syscall exit tracing.
Register 2 is alredy overwritten by the return value when syscall_trace_leave() is called. Signed-off-by: Lars Persson <larper@axis.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/9187/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
		
							parent
							
								
									26f7c4bd05
								
							
						
					
					
						commit
						c2d9f17757
					
				
					 3 changed files with 4 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -29,13 +29,7 @@
 | 
			
		|||
static inline long syscall_get_nr(struct task_struct *task,
 | 
			
		||||
				  struct pt_regs *regs)
 | 
			
		||||
{
 | 
			
		||||
	/* O32 ABI syscall() - Either 64-bit with O32 or 32-bit */
 | 
			
		||||
	if ((config_enabled(CONFIG_32BIT) ||
 | 
			
		||||
	    test_tsk_thread_flag(task, TIF_32BIT_REGS)) &&
 | 
			
		||||
	    (regs->regs[2] == __NR_syscall))
 | 
			
		||||
		return regs->regs[4];
 | 
			
		||||
	else
 | 
			
		||||
		return regs->regs[2];
 | 
			
		||||
	return current_thread_info()->syscall;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline unsigned long mips_get_syscall_arg(unsigned long *arg,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,6 +36,7 @@ struct thread_info {
 | 
			
		|||
						 */
 | 
			
		||||
	struct restart_block	restart_block;
 | 
			
		||||
	struct pt_regs		*regs;
 | 
			
		||||
	long			syscall;	/* syscall number */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -770,6 +770,8 @@ asmlinkage long syscall_trace_enter(struct pt_regs *regs, long syscall)
 | 
			
		|||
	long ret = 0;
 | 
			
		||||
	user_exit();
 | 
			
		||||
 | 
			
		||||
	current_thread_info()->syscall = syscall;
 | 
			
		||||
 | 
			
		||||
	if (secure_computing() == -1)
 | 
			
		||||
		return -1;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue