From: "Nicholas Piggin" <npiggin@gmail.com>
To: "Rohan McLure" <rmclure@linux.ibm.com>, <linuxppc-dev@lists.ozlabs.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Subject: Re: [PATCH 17/23] powerpc: Enable compile-time check for syscall handlers
Date: Tue, 20 Sep 2022 11:30:25 +1000 [thread overview]
Message-ID: <CN0U8YDYVPMM.3UYCVY2V79L0@bobo> (raw)
In-Reply-To: <20220916053300.786330-18-rmclure@linux.ibm.com>
On Fri Sep 16, 2022 at 3:32 PM AEST, Rohan McLure wrote:
> The table of syscall handlers and registered compatibility syscall
> handlers has in past been produced using assembly, with function
> references resolved at link time. This moves link-time errors to
> compile-time, by rewriting systbl.S in C, and including the
> linux/syscalls.h, linux/compat.h and asm/syscalls.h headers for
> prototypes.
>
> Reported-by: Arnd Bergmann <arnd@arndb.de>
> Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
> Reported-by: Nicholas Piggin <npiggin@gmail.com>
> ---
> V1 -> V2: New patch.
> V4 -> V5: For this patch only, represent handler function pointers as
> unsigned long. Remove reference to syscall wrappers. Use asm/syscalls.h
> which implies asm/syscall.h
Thanks, I think this is the right way to split the patches.
I'm not sure if I reported this issue, but I really like the patch.
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
> ---
> arch/powerpc/kernel/{systbl.S => systbl.c} | 28 ++++++++------------
> 1 file changed, 11 insertions(+), 17 deletions(-)
>
> diff --git a/arch/powerpc/kernel/systbl.S b/arch/powerpc/kernel/systbl.c
> similarity index 61%
> rename from arch/powerpc/kernel/systbl.S
> rename to arch/powerpc/kernel/systbl.c
> index 6c1db3b6de2d..ce52bd2ec292 100644
> --- a/arch/powerpc/kernel/systbl.S
> +++ b/arch/powerpc/kernel/systbl.c
> @@ -10,32 +10,26 @@
> * PPC64 updates by Dave Engebretsen (engebret@us.ibm.com)
> */
>
> -#include <asm/ppc_asm.h>
> +#include <linux/syscalls.h>
> +#include <linux/compat.h>
> +#include <asm/unistd.h>
> +#include <asm/syscalls.h>
>
> -.section .rodata,"a"
> +#define __SYSCALL_WITH_COMPAT(nr, entry, compat) __SYSCALL(nr, entry)
> +#define __SYSCALL(nr, entry) [nr] = (unsigned long) &entry,
>
> -#ifdef CONFIG_PPC64
> - .p2align 3
> -#define __SYSCALL(nr, entry) .8byte entry
> -#else
> - .p2align 2
> -#define __SYSCALL(nr, entry) .long entry
> -#endif
> -
> -#define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native)
> -.globl sys_call_table
> -sys_call_table:
> +const unsigned long sys_call_table[] = {
> #ifdef CONFIG_PPC64
> #include <asm/syscall_table_64.h>
> #else
> #include <asm/syscall_table_32.h>
> #endif
> +};
>
> #ifdef CONFIG_COMPAT
> #undef __SYSCALL_WITH_COMPAT
> #define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, compat)
> -.globl compat_sys_call_table
> -compat_sys_call_table:
> -#define compat_sys_sigsuspend sys_sigsuspend
> +const unsigned long compat_sys_call_table[] = {
> #include <asm/syscall_table_32.h>
> -#endif
> +};
> +#endif /* CONFIG_COMPAT */
> --
> 2.34.1
next prev parent reply other threads:[~2022-09-20 1:31 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-16 5:32 [PATCH 00/23] powerpc: Syscall wrapper and register clearing Rohan McLure
2022-09-16 5:32 ` [PATCH 01/23] powerpc: Remove asmlinkage from syscall handler definitions Rohan McLure
2022-09-16 5:32 ` [PATCH 02/23] powerpc: Save caller r3 prior to system_call_exception Rohan McLure
2022-09-16 5:32 ` [PATCH 03/23] powerpc: Add ZEROIZE_GPRS macros for register clears Rohan McLure
2022-09-16 5:32 ` [PATCH 04/23] powerpc/64s: Use {ZEROIZE,SAVE,REST}_GPRS macros in sc, scv 0 handlers Rohan McLure
2022-09-16 5:32 ` [PATCH 05/23] powerpc/32: Clarify interrupt restores with REST_GPR macro in entry_32.S Rohan McLure
2022-09-20 0:51 ` Nicholas Piggin
2022-09-16 5:32 ` [PATCH 06/23] powerpc/64e: Clarify register saves and clears with {SAVE,ZEROIZE}_GPRS Rohan McLure
2022-09-20 0:55 ` Nicholas Piggin
2022-09-16 5:32 ` [PATCH 07/23] powerpc/64s: Fix comment on interrupt handler prologue Rohan McLure
2022-09-20 0:55 ` Nicholas Piggin
2022-09-16 5:32 ` [PATCH 08/23] powerpc: Fix fallocate and fadvise64_64 compat parameter combination Rohan McLure
2022-09-16 6:54 ` Arnd Bergmann
2022-09-20 1:01 ` Nicholas Piggin
2022-09-16 5:32 ` [PATCH 09/23] asm-generic: compat: Support BE for long long args in 32-bit ABIs Rohan McLure
2022-09-20 1:06 ` Nicholas Piggin
2022-09-20 1:06 ` Nicholas Piggin
2022-09-20 7:09 ` Arnd Bergmann
2022-09-16 5:32 ` [PATCH 10/23] powerpc: Use generic fallocate compatibility syscall Rohan McLure
2022-09-16 6:56 ` Arnd Bergmann
2022-09-16 5:32 ` [PATCH 11/23] powerpc/32: Remove powerpc select specialisation Rohan McLure
2022-09-16 5:32 ` [PATCH 12/23] powerpc: Remove direct call to personality syscall handler Rohan McLure
2022-09-16 5:32 ` [PATCH 13/23] powerpc: Remove direct call to mmap2 syscall handlers Rohan McLure
2022-09-16 5:32 ` [PATCH 14/23] powerpc: Provide do_ppc64_personality helper Rohan McLure
2022-09-16 5:32 ` [PATCH 15/23] powerpc: Adopt SYSCALL_DEFINE for arch-specific syscall handlers Rohan McLure
2022-09-16 5:48 ` Rohan McLure
2022-09-20 1:24 ` Nicholas Piggin
2022-09-16 5:32 ` [PATCH 16/23] powerpc: Include all arch-specific syscall prototypes Rohan McLure
2022-09-20 1:27 ` Nicholas Piggin
2022-09-16 5:32 ` [PATCH 17/23] powerpc: Enable compile-time check for syscall handlers Rohan McLure
2022-09-20 1:30 ` Nicholas Piggin [this message]
2022-09-16 5:32 ` [PATCH 18/23] powerpc: Use common syscall handler type Rohan McLure
2022-09-20 1:39 ` Nicholas Piggin
2022-09-16 5:32 ` [PATCH 19/23] powerpc: Provide syscall wrapper Rohan McLure
2022-09-20 1:59 ` Nicholas Piggin
2022-09-21 3:44 ` Rohan McLure
2022-09-16 5:32 ` [PATCH 20/23] powerpc/64s: Clear/restore caller gprs in syscall interrupt/return Rohan McLure
2022-09-20 2:03 ` Nicholas Piggin
2022-09-20 4:54 ` Rohan McLure
2022-09-21 5:33 ` Rohan McLure
2022-09-20 2:07 ` Nicholas Piggin
2022-09-16 5:32 ` [PATCH 21/23] powerpc/64: Add INTERRUPT_SANITIZE_REGISTERS Kconfig Rohan McLure
2022-09-20 2:10 ` Nicholas Piggin
2022-09-16 5:32 ` [PATCH 22/23] powerpc/64s: Clear gprs on interrupt routine entry in Book3S Rohan McLure
2022-09-20 2:27 ` Nicholas Piggin
2022-09-16 5:33 ` [PATCH 23/23] powerpc/64e: Clear gprs on interrupt routine entry on Book3E Rohan McLure
2022-09-16 5:58 ` [PATCH 00/23] powerpc: Syscall wrapper and register clearing Rohan McLure
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=CN0U8YDYVPMM.3UYCVY2V79L0@bobo \
--to=npiggin@gmail.com \
--cc=arnd@arndb.de \
--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.