WSL2-Linux-Kernel/arch/parisc
Arnd Bergmann 89c0dc93e5 parisc: use generic sys_fanotify_mark implementation
[ Upstream commit 403f17a330732a666ae793f3b15bc75bb5540524 ]

The sys_fanotify_mark() syscall on parisc uses the reverse word order
for the two halves of the 64-bit argument compared to all syscalls on
all 32-bit architectures. As far as I can tell, the problem is that
the function arguments on parisc are sorted backwards (26, 25, 24, 23,
...) compared to everyone else, so the calling conventions of using an
even/odd register pair in native word order result in the lower word
coming first in function arguments, matching the expected behavior
on little-endian architectures. The system call conventions however
ended up matching what the other 32-bit architectures do.

A glibc cleanup in 2020 changed the userspace behavior in a way that
handles all architectures consistently, but this inadvertently broke
parisc32 by changing to the same method as everyone else.

The change made it into glibc-2.35 and subsequently into debian 12
(bookworm), which is the latest stable release. This means we
need to choose between reverting the glibc change or changing the
kernel to match it again, but either hange will leave some systems
broken.

Pick the option that is more likely to help current and future
users and change the kernel to match current glibc. This also
means the behavior is now consistent across architectures, but
it breaks running new kernels with old glibc builds before 2.35.

Link: https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=d150181d73d9
Link: https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/commit/arch/parisc/kernel/sys_parisc.c?h=57b1dfbd5b4a39d
Cc: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Tested-by: Helge Deller <deller@gmx.de>
Acked-by: Helge Deller <deller@gmx.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-07-05 09:14:45 +02:00
..
boot parisc: Add missing FORCE prerequisite in Makefile 2021-09-09 12:44:30 +02:00
configs configs: remove the obsolete CONFIG_INPUT_POLLDEV 2021-09-08 11:50:28 -07:00
include parisc: Strip upper 32 bit of sum in csum_ipv6_magic for 64-bit builds 2024-04-10 16:18:36 +02:00
kernel parisc: use generic sys_fanotify_mark implementation 2024-07-05 09:14:45 +02:00
lib parisc: Add ioread64_lo_hi() and iowrite64_lo_hi() 2022-02-23 12:03:04 +01:00
math-emu parisc: math-emu: Fix fall-through warnings 2021-09-01 22:18:18 +02:00
mm parisc: Fix handling off probe non-access faults 2022-04-08 14:23:56 +02:00
Kbuild parisc: move core-y in arch/parisc/Makefile to arch/parisc/Kbuild 2021-08-30 10:18:25 +02:00
Kconfig parisc: use generic sys_fanotify_mark implementation 2024-07-05 09:14:45 +02:00
Kconfig.debug tracing: Refactor TRACE_IRQFLAGS_SUPPORT in Kconfig 2021-08-16 11:37:21 -04:00
Makefile parisc: Fix KBUILD_IMAGE for self-extracting kernel 2021-12-08 09:04:55 +01:00
defpalo.conf
install.sh parisc: Fix "make install" on newer debian releases 2021-12-08 09:04:55 +01:00
nm