From: Ken Werner <[email protected]> Since the order of the first and second arguments of the raw clone() system call is reversed on s390 and cris it needs to be invoked differently.
Signed-off-by: Ken Werner <[email protected]> --- src/nspawn/nspawn.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 9ca53cd..9bfd7a5 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -3133,9 +3133,17 @@ int main(int argc, char *argv[]) { goto finish; } +#if defined(__s390__) || defined(__CRIS) + /* On s390 and cris the order of the first and second arguments + * of the raw clone() system call is reversed. */ + pid = syscall(__NR_clone, NULL, SIGCHLD|CLONE_NEWNS| + (arg_share_system ? 0 : CLONE_NEWIPC|CLONE_NEWPID|CLONE_NEWUTS)| + (arg_private_network ? CLONE_NEWNET : 0)); +#else pid = syscall(__NR_clone, SIGCHLD|CLONE_NEWNS| (arg_share_system ? 0 : CLONE_NEWIPC|CLONE_NEWPID|CLONE_NEWUTS)| (arg_private_network ? CLONE_NEWNET : 0), NULL); +#endif if (pid < 0) { if (errno == EINVAL) r = log_error_errno(errno, "clone() failed, do you have namespace support enabled in your kernel? (You need UTS, IPC, PID and NET namespacing built in): %m"); -- 1.7.1 _______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
