selftests/powerpc: fix exec benchmark
authorNicholas Piggin <npiggin@gmail.com>
Sat, 12 May 2018 03:35:24 +0000 (13:35 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 14 May 2018 13:10:33 +0000 (23:10 +1000)
The exec_target binary could segfault calling _exit(2) because r13
is not set up properly (and libc looks at that when performing a
syscall). Call SYS_exit using syscall(2) which doesn't seem to
have this problem.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
tools/testing/selftests/powerpc/benchmarks/exec_target.c

index 3c9c144..c14b0fc 100644 (file)
@@ -6,8 +6,11 @@
  * Copyright 2018, Anton Blanchard, IBM Corp.
  */
 
-void _exit(int);
+#define _GNU_SOURCE
+#include <unistd.h>
+#include <sys/syscall.h>
+
 void _start(void)
 {
-       _exit(0);
+       syscall(SYS_exit, 0);
 }