diff options
author | Ed Maste <emaste@FreeBSD.org> | 2018-07-06 19:44:49 +0000 |
---|---|---|
committer | Ed Maste <emaste@FreeBSD.org> | 2018-07-06 19:44:49 +0000 |
commit | 8b159f50a001ae2185845693b0500fecd948254f (patch) | |
tree | 59deb0c4d0308121632cfaf16596c035bd7b0854 /sys/arm64 | |
parent | 4d96a1b772e45b835efb87cb860ec4f540c4196d (diff) | |
download | src-8b159f50a001ae2185845693b0500fecd948254f.tar.gz src-8b159f50a001ae2185845693b0500fecd948254f.zip |
Fix arm64 linuxulator clone() argument order
Linux/arm64 is CLONE_BACKWARDS - i.e., "Architecture has tls passed as
the 4th argument of clone(2), not the 5th one."
The linux clone() syscall has four different permutations of argument
order, depending on architecture - see the #ifdef CONFIG_CLONE_BACKWARDS
maze in Linux's kernel/fork.c.
Sponsored by: Turing Robotic Industries
Notes
Notes:
svn path=/head/; revision=336043
Diffstat (limited to 'sys/arm64')
-rw-r--r-- | sys/arm64/linux/syscalls.master | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/arm64/linux/syscalls.master b/sys/arm64/linux/syscalls.master index 1b6e2ec12f52..8a0dcf6750d4 100644 --- a/sys/arm64/linux/syscalls.master +++ b/sys/arm64/linux/syscalls.master @@ -403,8 +403,8 @@ 218 AUE_NULL STD { int linux_request_key(void); } 219 AUE_NULL STD { int linux_keyctl(void); } 220 AUE_RFORK STD { int linux_clone(l_int flags, void *stack, \ - void *parent_tidptr, void *child_tidptr, \ - void *tls); } + void *parent_tidptr, void *tls, \ + void *child_tidptr); } 221 AUE_EXECVE STD { int linux_execve(char *path, char **argp, \ char **envp); } 222 AUE_MMAP STD { int linux_mmap2(l_ulong addr, l_ulong len, \ |