mips: fix compat_sys_lseek syscall
authorArnd Bergmann <arnd@arndb.de>
Thu, 20 Jun 2024 16:23:04 +0000 (18:23 +0200)
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>
Fri, 21 Jun 2024 08:16:34 +0000 (10:16 +0200)
This is almost compatible, but passing a negative offset should result
in a EINVAL error, but on mips o32 compat mode would seek to a large
32-bit byte offset.

Use compat_sys_lseek() to correctly sign-extend the argument.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
arch/mips/kernel/syscalls/syscall_o32.tbl

index 008ebe6..81428a2 100644 (file)
@@ -27,7 +27,7 @@
 17     o32     break                           sys_ni_syscall
 # 18 was sys_stat
 18     o32     unused18                        sys_ni_syscall
-19     o32     lseek                           sys_lseek
+19     o32     lseek                           sys_lseek                       compat_sys_lseek
 20     o32     getpid                          sys_getpid
 21     o32     mount                           sys_mount
 22     o32     umount                          sys_oldumount