Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b8f3830c authored by Helge Deller's avatar Helge Deller Committed by Greg Kroah-Hartman
Browse files

parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode



commit 6431e92fc827bdd2d28f79150d90415ba9ce0d21 upstream.

For all syscalls in 32-bit compat mode on 64-bit kernels the upper
32-bits of the 64-bit registers are zeroed out, so a negative 32-bit
signed value will show up as positive 64-bit signed value.

This behaviour breaks the io_pgetevents_time64() syscall which expects
signed 64-bit values for the "min_nr" and "nr" parameters.
Fix this by switching to the compat_sys_io_pgetevents_time64() syscall,
which uses "compat_long_t" types for those parameters.

Cc: <stable@vger.kernel.org> # v5.1+
Signed-off-by: default avatarHelge Deller <deller@gmx.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent d7ba24d3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -413,7 +413,7 @@
412	32	utimensat_time64		sys_utimensat			sys_utimensat
413	32	pselect6_time64			sys_pselect6			compat_sys_pselect6_time64
414	32	ppoll_time64			sys_ppoll			compat_sys_ppoll_time64
416	32	io_pgetevents_time64		sys_io_pgetevents		sys_io_pgetevents
416	32	io_pgetevents_time64		sys_io_pgetevents		compat_sys_io_pgetevents_time64
417	32	recvmmsg_time64			sys_recvmmsg			compat_sys_recvmmsg_time64
418	32	mq_timedsend_time64		sys_mq_timedsend		sys_mq_timedsend
419	32	mq_timedreceive_time64		sys_mq_timedreceive		sys_mq_timedreceive