Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Jul 2018 19:44:49 +0000 (UTC)
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r336043 - head/sys/arm64/linux
Message-ID:  <201807061944.w66JinlV080910@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: emaste
Date: Fri Jul  6 19:44:49 2018
New Revision: 336043
URL: https://svnweb.freebsd.org/changeset/base/336043

Log:
  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

Modified:
  head/sys/arm64/linux/syscalls.master

Modified: head/sys/arm64/linux/syscalls.master
==============================================================================
--- head/sys/arm64/linux/syscalls.master	Fri Jul  6 19:33:58 2018	(r336042)
+++ head/sys/arm64/linux/syscalls.master	Fri Jul  6 19:44:49 2018	(r336043)
@@ -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, \



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201807061944.w66JinlV080910>