Re: [PATCH v7 13/13] alpha: Use the common syscall table
From: Magnus Lindholm
Date: Fri Sep 18 2026 - 07:02:09 EST
Hi André,
On Fri, Sep 18, 2026 at 1:48 AM André Almeida <andrealmeid@xxxxxxxxxx> wrote:
>
> Remove some of the duplicated code by using the common syscall number
> table.
>
> Signed-off-by: André Almeida <andrealmeid@xxxxxxxxxx>
> ---
> arch/alpha/kernel/syscalls/Makefile | 14 +++++++---
> arch/alpha/kernel/syscalls/syscall.tbl | 49 ----------------------------------
> arch/alpha/kernel/systbls.S | 1 +
> 3 files changed, 11 insertions(+), 53 deletions(-)
>
> diff --git a/arch/alpha/kernel/syscalls/Makefile b/arch/alpha/kernel/syscalls/Makefile
> index b265e4bc16c2..03099daff6b9 100644
> --- a/arch/alpha/kernel/syscalls/Makefile
> +++ b/arch/alpha/kernel/syscalls/Makefile
> @@ -7,17 +7,23 @@ $(shell mkdir -p $(uapi) $(kapi))
> syscall := $(src)/syscall.tbl
> syshdr := $(srctree)/scripts/syscallhdr.sh
> systbl := $(srctree)/scripts/syscalltbl.sh
> +systbl_common := $(srctree)/scripts/syscall_common.tbl
> +abis := common,__clone3
>
> quiet_cmd_syshdr = SYSHDR $@
> - cmd_syshdr = $(CONFIG_SHELL) $(syshdr) --emit-nr $< $@
> + cmd_syshdr = $(CONFIG_SHELL) $(syshdr) --emit-nr \
> + --common-tbl $(systbl_common) --common-offset 110 \
> + --abis $(abis) $< $@
>
> quiet_cmd_systbl = SYSTBL $@
> - cmd_systbl = $(CONFIG_SHELL) $(systbl) $< $@
> + cmd_systbl = $(CONFIG_SHELL) $(systbl) \
> + --common-tbl $(systbl_common) --common-offset 110 \
> + --abis $(abis) $< $@
>
> -$(uapi)/unistd_32.h: $(syscall) $(syshdr) FORCE
> +$(uapi)/unistd_32.h: $(syscall) $(systbl_common) $(syshdr) FORCE
> $(call if_changed,syshdr)
>
> -$(kapi)/syscall_table.h: $(syscall) $(systbl) FORCE
> +$(kapi)/syscall_table.h: $(syscall) $(systbl_common) $(systbl) FORCE
> $(call if_changed,systbl)
>
> uapisyshdr-y += unistd_32.h
> diff --git a/arch/alpha/kernel/syscalls/syscall.tbl b/arch/alpha/kernel/syscalls/syscall.tbl
> index a41276634923..7066a3920899 100644
> --- a/arch/alpha/kernel/syscalls/syscall.tbl
> +++ b/arch/alpha/kernel/syscalls/syscall.tbl
> @@ -463,52 +463,3 @@
> 532 common getppid sys_getppid
> # all other architectures have common numbers for new syscall, alpha
> # is the exception.
> -534 common pidfd_send_signal sys_pidfd_send_signal
> -535 common io_uring_setup sys_io_uring_setup
> -536 common io_uring_enter sys_io_uring_enter
> -537 common io_uring_register sys_io_uring_register
> -538 common open_tree sys_open_tree
> -539 common move_mount sys_move_mount
> -540 common fsopen sys_fsopen
> -541 common fsconfig sys_fsconfig
> -542 common fsmount sys_fsmount
> -543 common fspick sys_fspick
> -544 common pidfd_open sys_pidfd_open
> -545 common clone3 __clone3
> -546 common close_range sys_close_range
> -547 common openat2 sys_openat2
> -548 common pidfd_getfd sys_pidfd_getfd
> -549 common faccessat2 sys_faccessat2
> -550 common process_madvise sys_process_madvise
> -551 common epoll_pwait2 sys_epoll_pwait2
> -552 common mount_setattr sys_mount_setattr
> -553 common quotactl_fd sys_quotactl_fd
> -554 common landlock_create_ruleset sys_landlock_create_ruleset
> -555 common landlock_add_rule sys_landlock_add_rule
> -556 common landlock_restrict_self sys_landlock_restrict_self
> -# 557 reserved for memfd_secret
> -558 common process_mrelease sys_process_mrelease
> -559 common futex_waitv sys_futex_waitv
> -560 common set_mempolicy_home_node sys_set_mempolicy_home_node
> -561 common cachestat sys_cachestat
> -562 common fchmodat2 sys_fchmodat2
> -563 common map_shadow_stack sys_map_shadow_stack
> -564 common futex_wake sys_futex_wake
> -565 common futex_wait sys_futex_wait
> -566 common futex_requeue sys_futex_requeue
> -567 common statmount sys_statmount
> -568 common listmount sys_listmount
> -569 common lsm_get_self_attr sys_lsm_get_self_attr
> -570 common lsm_set_self_attr sys_lsm_set_self_attr
> -571 common lsm_list_modules sys_lsm_list_modules
> -572 common mseal sys_mseal
> -573 common setxattrat sys_setxattrat
> -574 common getxattrat sys_getxattrat
> -575 common listxattrat sys_listxattrat
> -576 common removexattrat sys_removexattrat
> -577 common open_tree_attr sys_open_tree_attr
> -578 common file_getattr sys_file_getattr
> -579 common file_setattr sys_file_setattr
> -580 common listns sys_listns
> -581 common rseq_slice_yield sys_rseq_slice_yield
> -582 common fchroot sys_fchroot
> diff --git a/arch/alpha/kernel/systbls.S b/arch/alpha/kernel/systbls.S
> index 68f3e4f329eb..9a67d29f7818 100644
> --- a/arch/alpha/kernel/systbls.S
> +++ b/arch/alpha/kernel/systbls.S
> @@ -7,6 +7,7 @@
>
> #include <asm/unistd.h>
>
> +#define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native)
> #define __SYSCALL(nr, entry) .quad entry
> .data
> .align 3
>
> --
> 2.55.0
>
>
I tested the full series on my Alpha for-next branch, which also contains
the Alpha GENERIC_ENTRY enablement.
With patch 13 applied the kernel builds and links successfully and boots
normally on my UP2000+.
The issue I mentioned on patch 12 is hidden by this patch, since the
common table correctly selects __sys_clone3 for the __clone3 ABI.
Other than that issue in patch 12, I haven't found any Alpha-specific
problems with the conversion.
Tested-by: Magnus Lindholm <linmag7@xxxxxxxxx>