On Tue, 31 Mar 2026, Marcos Paulo de Souza wrote: > On Mon, 2026-03-16 at 16:12 -0400, Joe Lawrence wrote: > > On Fri, Mar 13, 2026 at 05:58:32PM -0300, Marcos Paulo de Souza > > wrote: > > > Instead of checking if the architecture running the test was > > > powerpc, > > > check if CONF_ARCH_HAS_SYSCALL_WRAPPER is defined or not. > > > > > > No functional changes. > > > > > > Signed-off-by: Marcos Paulo de Souza <[email protected]> > > > --- > > > tools/testing/selftests/livepatch/test_modules/test_klp_syscall.c > > > | 7 +++---- > > > 1 file changed, 3 insertions(+), 4 deletions(-) > > > > > > diff --git > > > a/tools/testing/selftests/livepatch/test_modules/test_klp_syscall.c > > > b/tools/testing/selftests/livepatch/test_modules/test_klp_syscall.c > > > index dd802783ea849..c01a586866304 100644 > > > --- > > > a/tools/testing/selftests/livepatch/test_modules/test_klp_syscall.c > > > +++ > > > b/tools/testing/selftests/livepatch/test_modules/test_klp_syscall.c > > > @@ -12,15 +12,14 @@ > > > #include <linux/slab.h> > > > #include <linux/livepatch.h> > > > > > > -#if defined(__x86_64__) > > > +#if !defined(CONFIG_ARCH_HAS_SYSCALL_WRAPPER) > > > +#define FN_PREFIX > > > +#elif defined(__x86_64__) > > > #define FN_PREFIX __x64_ > > > #elif defined(__s390x__) > > > #define FN_PREFIX __s390x_ > > > #elif defined(__aarch64__) > > > #define FN_PREFIX __arm64_ > > > -#else > > > -/* powerpc does not select ARCH_HAS_SYSCALL_WRAPPER */ > > > -#define FN_PREFIX > > > > The patch does maintain the previous behavior, but I'm wondering if > > the > > original assertion about ARCH_HAS_SYSCALL_WRAPPER on Power was > > correct: > > > > $ grep ARCH_HAS_SYSCALL_WRAPPER arch/powerpc/Kconfig > > select ARCH_HAS_SYSCALL_WRAPPER if !SPU_BASE && > > !COMPAT > > depends on PPC64 && ARCH_HAS_SYSCALL_WRAPPER > > > > Perhaps I just forgot what that additional piece of information that > > explains the comment (highly probable these days), and if so, might > > be > > nice to add to this commit since I don't see it in 6a71770442b5 > > ("selftests: livepatch: Test livepatching a heavily called syscall"). > > Looking again at the code and at the symbols for SLE for ppc64le, I can > say that, even with ARCH_HAS_SYSCALL_WRAPPER being set, the syscall > names are not changed for ppc64le. Looking at > arch/powerpc/kernel/systbl.c: > > #ifdef CONFIG_ARCH_HAS_SYSCALL_WRAPPER > #define __SYSCALL(nr, entry) [nr] = entry, > #else > /* > * Coerce syscall handlers with arbitrary parameters to common type > * requires cast to void* to avoid -Wcast-function-type. > */ > #define __SYSCALL(nr, entry) [nr] = (void *) entry, > #endif
I think this is not the complete picture though. The definition of the syscall table did not change but the actual wrappers (or syscall functions naming before) did change a couple of times even on powerpc if I am reading the git history right. ARCH_HAS_SYSCALL_WRAPPER also changed how syscall parameters are consumed (from registers to stack frame (pt_regs)). It is not particularly relevant for getpid() which is SYSCALL_DEFINE0() but I wanted to point that out. Miroslav

