aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/arch/powerpc/entry/syscalls/syscall.tbl
diff options
context:
space:
mode:
authorRohan McLure <rmclure@linux.ibm.com>2022-09-21 16:55:51 +1000
committerMichael Ellerman <mpe@ellerman.id.au>2022-09-26 23:00:15 +1000
commitb6b1334c9510e162bd8ca0ae58403cafad9572f1 (patch)
treeceea5be25758dd56fe846b0f8a4d80b5bd6d5c5a /tools/perf/arch/powerpc/entry/syscalls/syscall.tbl
parentpowerpc: Use generic fallocate compatibility syscall (diff)
downloadlinux-dev-b6b1334c9510e162bd8ca0ae58403cafad9572f1.tar.xz
linux-dev-b6b1334c9510e162bd8ca0ae58403cafad9572f1.zip
powerpc/32: Remove powerpc select specialisation
Syscall #82 has been implemented for 32-bit platforms in a unique way on powerpc systems. This hack will in effect guess whether the caller is expecting new select semantics or old select semantics. It does so via a guess, based off the first parameter. In new select, this parameter represents the length of a user-memory array of file descriptors, and in old select this is a pointer to an arguments structure. The heuristic simply interprets sufficiently large values of its first parameter as being a call to old select. The following is a discussion on how this syscall should be handled. As discussed in this thread, the existence of such a hack suggests that for whatever powerpc binaries may predate glibc, it is most likely that they would have taken use of the old select semantics. x86 and arm64 both implement this syscall with oldselect semantics. Remove the powerpc implementation, and update syscall.tbl to refer to emit a reference to sys_old_select and compat_sys_old_select for 32-bit binaries, in keeping with how other architectures support syscall #82. Signed-off-by: Rohan McLure <rmclure@linux.ibm.com> Reviewed-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/lkml/13737de5-0eb7-e881-9af0-163b0d29a1a0@csgroup.eu/ Link: https://lore.kernel.org/r/20220921065605.1051927-12-rmclure@linux.ibm.com
Diffstat (limited to 'tools/perf/arch/powerpc/entry/syscalls/syscall.tbl')
-rw-r--r--tools/perf/arch/powerpc/entry/syscalls/syscall.tbl2
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/perf/arch/powerpc/entry/syscalls/syscall.tbl b/tools/perf/arch/powerpc/entry/syscalls/syscall.tbl
index 2600b4237292..64f27cbbdd2c 100644
--- a/tools/perf/arch/powerpc/entry/syscalls/syscall.tbl
+++ b/tools/perf/arch/powerpc/entry/syscalls/syscall.tbl
@@ -110,7 +110,7 @@
79 common settimeofday sys_settimeofday compat_sys_settimeofday
80 common getgroups sys_getgroups
81 common setgroups sys_setgroups
-82 32 select ppc_select sys_ni_syscall
+82 32 select sys_old_select compat_sys_old_select
82 64 select sys_ni_syscall
82 spu select sys_ni_syscall
83 common symlink sys_symlink