From: Andreas Schwab <schwab@linux-m68k.org>
To: Rohan McLure <rmclure@linux.ibm.com>
Cc: linuxppc-dev@lists.ozlabs.org, Andrew Donnellan <ajd@linux.ibm.com>
Subject: [PATCH] powerpc/32: fix syscall wrappers with 64-bit arguments
Date: Mon, 31 Oct 2022 15:47:35 +0100 [thread overview]
Message-ID: <87mt9cxd6g.fsf_-_@igel.home> (raw)
In-Reply-To: <20220921065605.1051927-22-rmclure@linux.ibm.com> (Rohan McLure's message of "Wed, 21 Sep 2022 16:56:01 +1000")
With the introducion 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: 7e92e01b7245 ("powerpc: Provide syscall wrapper")
Fixes: e23750623835 ("powerpc/32: fix syscall wrappers with 64-bit arguments of unaligned register-pairs")
Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
---
arch/powerpc/include/asm/syscalls.h | 7 +++++++
arch/powerpc/kernel/sys_ppc32.c | 13 ++++++++++++-
arch/powerpc/kernel/syscalls/syscall.tbl | 7 +++++--
3 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/arch/powerpc/include/asm/syscalls.h b/arch/powerpc/include/asm/syscalls.h
index a1142496cd58..6d51b007b59e 100644
--- a/arch/powerpc/include/asm/syscalls.h
+++ b/arch/powerpc/include/asm/syscalls.h
@@ -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,
diff --git a/arch/powerpc/kernel/sys_ppc32.c b/arch/powerpc/kernel/sys_ppc32.c
index 1ab4a4d95aba..d451a8229223 100644
--- a/arch/powerpc/kernel/sys_ppc32.c
+++ b/arch/powerpc/kernel/sys_ppc32.c
@@ -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
diff --git a/arch/powerpc/kernel/syscalls/syscall.tbl b/arch/powerpc/kernel/syscalls/syscall.tbl
index e9e0df4f9a61..a0be127475b1 100644
--- a/arch/powerpc/kernel/syscalls/syscall.tbl
+++ b/arch/powerpc/kernel/syscalls/syscall.tbl
@@ -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
--
2.38.1
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."
next prev parent reply other threads:[~2022-10-31 14:48 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-21 6:55 [PATCH v6 00/25] powerpc: Syscall wrapper and register clearing Rohan McLure
2022-09-21 6:55 ` [PATCH v6 01/25] powerpc: Remove asmlinkage from syscall handler definitions Rohan McLure
2022-09-21 6:55 ` [PATCH v6 02/25] powerpc: Save caller r3 prior to system_call_exception Rohan McLure
2022-09-21 6:55 ` [PATCH v6 03/25] powerpc: Add ZEROIZE_GPRS macros for register clears Rohan McLure
2022-09-21 6:55 ` [PATCH v6 04/25] powerpc/64s: Use {ZEROIZE,SAVE,REST}_GPRS macros in sc, scv 0 handlers Rohan McLure
2022-09-21 6:55 ` [PATCH v6 05/25] powerpc/32: Clarify interrupt restores with REST_GPR macro in entry_32.S Rohan McLure
2022-09-21 6:55 ` [PATCH v6 06/25] powerpc/64e: Clarify register saves and clears with {SAVE,ZEROIZE}_GPRS Rohan McLure
2022-09-21 6:55 ` [PATCH v6 07/25] powerpc/64s: Fix comment on interrupt handler prologue Rohan McLure
2022-09-21 6:55 ` [PATCH v6 08/25] powerpc: Fix fallocate and fadvise64_64 compat parameter combination Rohan McLure
2022-09-21 6:55 ` [PATCH v6 09/25] asm-generic: compat: Support BE for long long args in 32-bit ABIs Rohan McLure
2022-10-31 13:23 ` [PATCH] asm-generic: compat: fix compat_arg_u64 and compat_arg_u64_dual Andreas Schwab
2022-11-01 12:25 ` Michael Ellerman
2022-11-03 8:20 ` Christophe Leroy
2022-11-03 8:48 ` Arnd Bergmann
2022-09-21 6:55 ` [PATCH v6 10/25] powerpc: Use generic fallocate compatibility syscall Rohan McLure
2022-09-21 6:55 ` [PATCH v6 11/25] powerpc/32: Remove powerpc select specialisation Rohan McLure
2022-09-21 6:55 ` [PATCH v6 12/25] powerpc: Remove direct call to personality syscall handler Rohan McLure
2022-09-21 6:55 ` [PATCH v6 13/25] powerpc: Remove direct call to mmap2 syscall handlers Rohan McLure
2022-09-28 12:15 ` Michael Ellerman
2022-09-28 13:00 ` Arnd Bergmann
2022-09-30 13:19 ` Michael Ellerman
2022-09-30 14:09 ` Arnd Bergmann
2022-09-21 6:55 ` [PATCH v6 14/25] powerpc: Provide do_ppc64_personality helper Rohan McLure
2022-09-21 6:55 ` [PATCH v6 15/25] powerpc: Adopt SYSCALL_DEFINE for arch-specific syscall handlers Rohan McLure
2022-09-21 6:55 ` [PATCH v6 16/25] powerpc: Include all arch-specific syscall prototypes Rohan McLure
2022-09-21 6:55 ` [PATCH v6 17/25] powerpc: Enable compile-time check for syscall handlers Rohan McLure
2022-09-21 6:55 ` [PATCH v6 18/25] powerpc: Use common syscall handler type Rohan McLure
2022-09-21 6:55 ` [PATCH v6 19/25] powerpc: Remove high-order word clearing on compat syscall entry Rohan McLure
2022-09-23 7:40 ` Nicholas Piggin
2022-09-28 11:56 ` Michael Ellerman
2022-09-21 6:56 ` [PATCH v6 20/25] powerpc: Change system_call_exception calling convention Rohan McLure
2022-09-23 7:43 ` Nicholas Piggin
2022-09-21 6:56 ` [PATCH v6 21/25] powerpc: Provide syscall wrapper Rohan McLure
2022-09-23 7:50 ` Nicholas Piggin
2022-10-30 15:34 ` Andreas Schwab
2022-10-30 15:50 ` Andreas Schwab
2022-10-30 19:43 ` Arnd Bergmann
2022-10-30 20:05 ` Andreas Schwab
2022-10-31 3:09 ` Michael Ellerman
2022-10-31 14:47 ` Andreas Schwab [this message]
2022-10-31 19:37 ` [PATCH] powerpc/32: fix syscall wrappers with 64-bit arguments Arnd Bergmann
2022-11-01 12:25 ` Michael Ellerman
2022-09-21 6:56 ` [PATCH v6 22/25] powerpc/64s: Clear user GPRs in syscall interrupt entry Rohan McLure
2022-09-23 8:02 ` Nicholas Piggin
2022-10-31 23:22 ` Rohan McLure
2022-09-21 6:56 ` [PATCH v6 23/25] powerpc/64: Add INTERRUPT_SANITIZE_REGISTERS Kconfig Rohan McLure
2022-09-21 6:56 ` [PATCH v6 24/25] powerpc/64s: Clear gprs on interrupt routine entry in Book3S Rohan McLure
2022-09-21 6:56 ` [PATCH v6 25/25] powerpc/64e: Clear gprs on interrupt routine entry on Book3E Rohan McLure
2022-10-04 13:24 ` [PATCH v6 00/25] powerpc: Syscall wrapper and register clearing Michael Ellerman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87mt9cxd6g.fsf_-_@igel.home \
--to=schwab@linux-m68k.org \
--cc=ajd@linux.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=rmclure@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.