]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
tools/nolibc: move the call to __sysret() into syscall()
authorThomas Weißschuh <linux@weissschuh.net>
Sun, 5 Apr 2026 09:06:24 +0000 (11:06 +0200)
committerThomas Weißschuh <linux@weissschuh.net>
Tue, 7 Apr 2026 07:27:02 +0000 (09:27 +0200)
__sysret() transforms the return value from the kernel into the libc
return value convention. There is no reason for it to be called in the
middle of the internals of the syscall() implementation macros.

Move the call up, directly into syscall(), to make the code simpler.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Acked-by: Willy Tarreau <w@1wt.eu>
Link: https://patch.msgid.link/20260405-nolibc-syscall-v1-2-e5b12bc63211@weissschuh.net
tools/include/nolibc/sys/syscall.h

index b673f3d0c0f82c3e9b8eaa69adc89f6b0aac7512..3f43fac3d7b899a14af474a5873dd65f705db03c 100644 (file)
@@ -12,8 +12,8 @@
 
 #define ___nolibc_syscall_narg(_0, _1, _2, _3, _4, _5, _6, N, ...) N
 #define __nolibc_syscall_narg(...) ___nolibc_syscall_narg(__VA_ARGS__, 6, 5, 4, 3, 2, 1, 0)
-#define __nolibc_syscall(N, ...) __sysret(__nolibc_syscall##N(__VA_ARGS__))
+#define __nolibc_syscall(N, ...) __nolibc_syscall##N(__VA_ARGS__)
 #define __nolibc_syscall_n(N, ...) __nolibc_syscall(N, __VA_ARGS__)
-#define syscall(...) __nolibc_syscall_n(__nolibc_syscall_narg(__VA_ARGS__), ##__VA_ARGS__)
+#define syscall(...) __sysret(__nolibc_syscall_n(__nolibc_syscall_narg(__VA_ARGS__), ##__VA_ARGS__))
 
 #endif /* _NOLIBC_SYS_SYSCALL_H */