mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	 433fe39f67
			
		
	
	
		433fe39f67
		
	
	
	
	
		
			
			Like fork and clone the clone3 syscall needs a wrapper to save callee
saved registers, which is required by the OpenRISC ABI.  This came up
after auditing code following a discussion with Rob Landley and Arnd
Bergmann [0].
Tested with the clone3 kselftests and there were no issues.
[0] https://lore.kernel.org/all/41206fc7-f8ce-98aa-3718-ba3e1431e320@landley.net/T/#m9c0cdb2703813b9df4da04cf6b30de1f1aa89944
Fixes: 07e83dfbe1 ("openrisc: Enable the clone3 syscall")
Cc: Rob Landley <rob@landley.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Stafford Horne <shorne@gmail.com>
		
	
			
		
			
				
	
	
		
			33 lines
		
	
	
		
			969 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			969 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0-or-later */
 | |
| /*
 | |
|  * OpenRISC Linux
 | |
|  *
 | |
|  * Linux architectural port borrowing liberally from similar works of
 | |
|  * others.  All original copyrights apply as per the original source
 | |
|  * declaration.
 | |
|  *
 | |
|  * OpenRISC implementation:
 | |
|  * Copyright (C) 2003 Matjaz Breskvar <phoenix@bsemi.com>
 | |
|  * Copyright (C) 2010-2011 Jonas Bonn <jonas@southpole.se>
 | |
|  * et al.
 | |
|  */
 | |
| 
 | |
| #ifndef __ASM_OPENRISC_SYSCALLS_H
 | |
| #define __ASM_OPENRISC_SYSCALLS_H
 | |
| 
 | |
| asmlinkage long sys_or1k_atomic(unsigned long type, unsigned long *v1,
 | |
| 				unsigned long *v2);
 | |
| 
 | |
| #include <asm-generic/syscalls.h>
 | |
| 
 | |
| asmlinkage long __sys_clone(unsigned long clone_flags, unsigned long newsp,
 | |
| 			void __user *parent_tid, void __user *child_tid, int tls);
 | |
| asmlinkage long __sys_clone3(struct clone_args __user *uargs, size_t size);
 | |
| asmlinkage long __sys_fork(void);
 | |
| 
 | |
| #define sys_clone __sys_clone
 | |
| #define sys_clone3 __sys_clone3
 | |
| #define sys_fork __sys_fork
 | |
| 
 | |
| #endif /* __ASM_OPENRISC_SYSCALLS_H */
 |