powerpc/32: fix syscall wrappers with 64-bit arguments
With the introduction of syscall wrappers all wrappers for syscalls with 64-bit arguments must be handled specially, not only those that have unaligned 64-bit arguments. This left out the fallocate() and sync_file_range2() syscalls. Fixes:7e92e01b72
("powerpc: Provide syscall wrapper") Fixes:e237506238
("powerpc/32: fix syscall wrappers with 64-bit arguments of unaligned register-pairs") Signed-off-by: Andreas Schwab <schwab@linux-m68k.org> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/87mt9cxd6g.fsf_-_@igel.home
This commit is contained in:
parent
40ff214328
commit
ce883a2ba3
@ -104,6 +104,13 @@ long sys_ppc_ftruncate64(unsigned int fd, u32 reg4,
|
||||
unsigned long len1, unsigned long len2);
|
||||
long sys_ppc32_fadvise64(int fd, u32 unused, u32 offset1, u32 offset2,
|
||||
size_t len, int advice);
|
||||
long sys_ppc_sync_file_range2(int fd, unsigned int flags,
|
||||
unsigned int offset1,
|
||||
unsigned int offset2,
|
||||
unsigned int nbytes1,
|
||||
unsigned int nbytes2);
|
||||
long sys_ppc_fallocate(int fd, int mode, u32 offset1, u32 offset2,
|
||||
u32 len1, u32 len2);
|
||||
#endif
|
||||
#ifdef CONFIG_COMPAT
|
||||
long compat_sys_mmap2(unsigned long addr, size_t len,
|
||||
|
@ -112,7 +112,7 @@ PPC32_SYSCALL_DEFINE6(ppc32_fadvise64,
|
||||
advice);
|
||||
}
|
||||
|
||||
COMPAT_SYSCALL_DEFINE6(ppc_sync_file_range2,
|
||||
PPC32_SYSCALL_DEFINE6(ppc_sync_file_range2,
|
||||
int, fd, unsigned int, flags,
|
||||
unsigned int, offset1, unsigned int, offset2,
|
||||
unsigned int, nbytes1, unsigned int, nbytes2)
|
||||
@ -122,3 +122,14 @@ COMPAT_SYSCALL_DEFINE6(ppc_sync_file_range2,
|
||||
|
||||
return ksys_sync_file_range(fd, offset, nbytes, flags);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PPC32
|
||||
SYSCALL_DEFINE6(ppc_fallocate,
|
||||
int, fd, int, mode,
|
||||
u32, offset1, u32, offset2, u32, len1, u32, len2)
|
||||
{
|
||||
return ksys_fallocate(fd, mode,
|
||||
merge_64(offset1, offset2),
|
||||
merge_64(len1, len2));
|
||||
}
|
||||
#endif
|
||||
|
@ -394,8 +394,11 @@
|
||||
305 common signalfd sys_signalfd compat_sys_signalfd
|
||||
306 common timerfd_create sys_timerfd_create
|
||||
307 common eventfd sys_eventfd
|
||||
308 common sync_file_range2 sys_sync_file_range2 compat_sys_ppc_sync_file_range2
|
||||
309 nospu fallocate sys_fallocate compat_sys_fallocate
|
||||
308 32 sync_file_range2 sys_ppc_sync_file_range2 compat_sys_ppc_sync_file_range2
|
||||
308 64 sync_file_range2 sys_sync_file_range2
|
||||
308 spu sync_file_range2 sys_sync_file_range2
|
||||
309 32 fallocate sys_ppc_fallocate compat_sys_fallocate
|
||||
309 64 fallocate sys_fallocate
|
||||
310 nospu subpage_prot sys_subpage_prot
|
||||
311 32 timerfd_settime sys_timerfd_settime32
|
||||
311 64 timerfd_settime sys_timerfd_settime
|
||||
|
Loading…
Reference in New Issue
Block a user