|
Message-Id: <b31072d5-865b-4cda-be37-d93c36397d39@app.fastmail.com> Date: Mon, 24 Jun 2024 14:52:47 +0200 From: "Arnd Bergmann" <arnd@...db.de> To: "Arnd Bergmann" <arnd@...nel.org>, Linux-Arch <linux-arch@...r.kernel.org>, linux-kernel@...r.kernel.org Cc: "Thomas Bogendoerfer" <tsbogend@...ha.franken.de>, linux-mips@...r.kernel.org, "Helge Deller" <deller@....de>, linux-parisc@...r.kernel.org, "David S . Miller" <davem@...emloft.net>, "Andreas Larsson" <andreas@...sler.com>, sparclinux@...r.kernel.org, "Michael Ellerman" <mpe@...erman.id.au>, "Nicholas Piggin" <npiggin@...il.com>, "Christophe Leroy" <christophe.leroy@...roup.eu>, "Naveen N. Rao" <naveen.n.rao@...ux.ibm.com>, linuxppc-dev@...ts.ozlabs.org, "Brian Cain" <bcain@...cinc.com>, linux-hexagon@...r.kernel.org, guoren <guoren@...nel.org>, "linux-csky@...r.kernel.org" <linux-csky@...r.kernel.org>, "Heiko Carstens" <hca@...ux.ibm.com>, linux-s390@...r.kernel.org, "Rich Felker" <dalias@...c.org>, "John Paul Adrian Glaubitz" <glaubitz@...sik.fu-berlin.de>, linux-sh@...r.kernel.org, "H. Peter Anvin" <hpa@...or.com>, "Alexander Viro" <viro@...iv.linux.org.uk>, "Christian Brauner" <brauner@...nel.org>, linux-fsdevel@...r.kernel.org, "Xi Ruoyao" <libc-alpha@...rceware.org>, "musl@...ts.openwall.com" <musl@...ts.openwall.com>, "LTP List" <ltp@...ts.linux.it>, stable@...r.kernel.org Subject: Re: [PATCH 02/15] syscalls: fix compat_sys_io_pgetevents_time64 usage On Thu, Jun 20, 2024, at 18:23, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@...db.de> > > Using sys_io_pgetevents() as the entry point for compat mode tasks > works almost correctly, but misses the sign extension for the min_nr > and nr arguments. > > This was addressed on parisc by switching to > compat_sys_io_pgetevents_time64() in commit 6431e92fc827 ("parisc: > io_pgetevents_time64() needs compat syscall in 32-bit compat mode"), > as well as by using more sophisticated system call wrappers on x86 and > s390. However, arm64, mips, powerpc, sparc and riscv still have the > same bug. > > Changes all of them over to use compat_sys_io_pgetevents_time64() > like parisc already does. This was clearly the intention when the > function was originally added, but it got hooked up incorrectly in > the tables. > > Cc: stable@...r.kernel.org > Fixes: 48166e6ea47d ("y2038: add 64-bit time_t syscalls to all 32-bit > architectures") > Signed-off-by: Arnd Bergmann <arnd@...db.de> > --- > arch/arm64/include/asm/unistd32.h | 2 +- > arch/mips/kernel/syscalls/syscall_n32.tbl | 2 +- > arch/mips/kernel/syscalls/syscall_o32.tbl | 2 +- > arch/powerpc/kernel/syscalls/syscall.tbl | 2 +- > arch/s390/kernel/syscalls/syscall.tbl | 2 +- > arch/sparc/kernel/syscalls/syscall.tbl | 2 +- > arch/x86/entry/syscalls/syscall_32.tbl | 2 +- > include/uapi/asm-generic/unistd.h | 2 +- > 8 files changed, 8 insertions(+), 8 deletions(-) The build bot reported a randconfig regressions with this patch, which I've now fixed up like this: diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index d7eee421d4bc..b696b85ac63e 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -46,8 +46,8 @@ COND_SYSCALL(io_getevents_time32); COND_SYSCALL(io_getevents); COND_SYSCALL(io_pgetevents_time32); COND_SYSCALL(io_pgetevents); -COND_SYSCALL_COMPAT(io_pgetevents_time32); COND_SYSCALL_COMPAT(io_pgetevents); +COND_SYSCALL_COMPAT(io_pgetevents_time64); COND_SYSCALL(io_uring_setup); COND_SYSCALL(io_uring_enter); COND_SYSCALL(io_uring_register); This was already broken on parisc the same way, but the mistake in sys_ni.c turned into a link failure for every compat architecture after my patch. Arnd
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.