ARM: syscalls: switch to generic syscalltbl.sh
diff mbox series

Message ID 20210301142834.345062-1-masahiroy@kernel.org
State Accepted
Commit 0047eb9f0905f797df6dd33b8bcbff9c6b116eda
Headers show
Series
  • ARM: syscalls: switch to generic syscalltbl.sh
Related show

Commit Message

Masahiro Yamada March 1, 2021, 2:28 p.m. UTC
Many architectures duplicate similar shell scripts.

This commit converts ARM to use scripts/syscalltbl.sh.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

KernelVersion: v5.12-rc1

 arch/arm/kernel/entry-common.S |  8 ++++----
 arch/arm/tools/Makefile        |  9 ++++-----
 arch/arm/tools/syscalltbl.sh   | 22 ----------------------
 3 files changed, 8 insertions(+), 31 deletions(-)
 delete mode 100644 arch/arm/tools/syscalltbl.sh

Comments

Linus Walleij March 5, 2021, 10:04 a.m. UTC | #1
On Mon, Mar 1, 2021 at 3:29 PM Masahiro Yamada <masahiroy@kernel.org> wrote:

> Many architectures duplicate similar shell scripts.
>
> This commit converts ARM to use scripts/syscalltbl.sh.
>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

This looks good to me to FWIW:
Acked-by: Linus Walleij <linus.walleij@linaro.org>

I'd like the arch maintainer Arnd Bergmann to take a look at it
though, he's the authority of cross-arch code sharing.

Yours,
Linus Walleij
Masahiro Yamada March 5, 2021, 2:53 p.m. UTC | #2
On Fri, Mar 5, 2021 at 7:04 PM Linus Walleij <linus.walleij@linaro.org> wrote:
>
> On Mon, Mar 1, 2021 at 3:29 PM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> > Many architectures duplicate similar shell scripts.
> >
> > This commit converts ARM to use scripts/syscalltbl.sh.
> >
> > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
>
> This looks good to me to FWIW:
> Acked-by: Linus Walleij <linus.walleij@linaro.org>

Thanks for the review.
This patch is already in Russell's patch tracker.

I manually copy/pasted your Ack:
https://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=9068/1


> I'd like the arch maintainer Arnd Bergmann to take a look at it
> though, he's the authority of cross-arch code sharing.


Actually, I sent a big series to linux-arch a few months ago,
but did not get much feedback.
https://lore.kernel.org/linux-arch/20210128005110.2613902-1-masahiroy@kernel.org/

I picked up scripts to my kbuild tree, then sent out
the rest per-arch.

Anyway, a lot of patches are flying.
Comments are appreciated.



--
Best Regards
Masahiro Yamada
Russell King (Oracle) March 25, 2021, 2:10 p.m. UTC | #3
On Fri, Mar 05, 2021 at 11:53:39PM +0900, Masahiro Yamada wrote:
> On Fri, Mar 5, 2021 at 7:04 PM Linus Walleij <linus.walleij@linaro.org> wrote:
> >
> > On Mon, Mar 1, 2021 at 3:29 PM Masahiro Yamada <masahiroy@kernel.org> wrote:
> >
> > > Many architectures duplicate similar shell scripts.
> > >
> > > This commit converts ARM to use scripts/syscalltbl.sh.
> > >
> > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> >
> > This looks good to me to FWIW:
> > Acked-by: Linus Walleij <linus.walleij@linaro.org>
> 
> Thanks for the review.
> This patch is already in Russell's patch tracker.
> 
> I manually copy/pasted your Ack:
> https://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=9068/1

I see you added a note to 9067/1 about the order of 9067/1 and 9068/1:

"Obviously, 9068 was submitted 30 seconds before 9067, but the patch
tracking system unfortunately picked them in reverse order,
unfortunately."

The patch system doesn't "pick" the patches. It merely accepts them in
the order that it receives them. I also received them in reverse order
into my personal mailbox as well, and also in reverse order from
infradead's mailing list.

2021-03-01 14:29:57 1lGjYa-0004Dd-Ok <= masahiroy@kernel.org
H=conuserg-10.nifty.com [210.131.2.77]:21701 I=[78.32.30.218]:25
P=esmtps X=TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256 S=5966 DKIM=nifty.com
id=20210301142903.345278-1-masahiroy@kernel.org T="[PATCH] ARM:
syscalls: switch to generic syscallhdr.sh" for linux@armlinux.org.uk
2021-03-01 14:30:06 1lGjYj-0004Di-B3 <= masahiroy@kernel.org
H=conuserg-07.nifty.com [210.131.2.74]:55987 I=[78.32.30.218]:25
P=esmtps X=TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256 S=5811 DKIM=nifty.com
id=20210301142834.345062-1-masahiroy@kernel.org T="[PATCH] ARM:
syscalls: switch to generic syscalltbl.sh" for linux@armlinux.org.uk

2021-03-01 14:32:46 1lGjbK-0004E2-0t <= masahiroy@kernel.org
H=condef-10.nifty.com [202.248.20.75]:19522 I=[78.32.30.218]:25 P=esmtps
X=TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256 S=6136 DKIM=nifty.com
id=20210301142903.345278-1-masahiroy@kernel.org T="[PATCH] ARM:
syscalls: switch to generic syscallhdr.sh" for patches@arm.linux.org.uk
2021-03-01 14:33:47 1lGjcI-0004EF-Ny <= masahiroy@kernel.org
H=condef-09.nifty.com [202.248.20.74]:45947 I=[78.32.30.218]:25 P=esmtps
X=TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256 S=5981 DKIM=nifty.com
id=20210301142834.345062-1-masahiroy@kernel.org T="[PATCH] ARM:
syscalls: switch to generic syscalltbl.sh" for patches@arm.linux.org.uk

Patch
diff mbox series

diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index e0d7833a1827..7f0b7aba1498 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -344,20 +344,19 @@  ENTRY(\sym)
 	.size	\sym, . - \sym
 	.endm
 
-#define NATIVE(nr, func) syscall nr, func
+#define __SYSCALL_WITH_COMPAT(nr, native, compat)	__SYSCALL(nr, native)
+#define __SYSCALL(nr, func) syscall nr, func
 
 /*
  * This is the syscall table declaration for native ABI syscalls.
  * With EABI a couple syscalls are obsolete and defined as sys_ni_syscall.
  */
 	syscall_table_start sys_call_table
-#define COMPAT(nr, native, compat) syscall nr, native
 #ifdef CONFIG_AEABI
 #include <calls-eabi.S>
 #else
 #include <calls-oabi.S>
 #endif
-#undef COMPAT
 	syscall_table_end sys_call_table
 
 /*============================================================================
@@ -455,7 +454,8 @@  ENDPROC(sys_oabi_readahead)
  * using the compatibility syscall entries.
  */
 	syscall_table_start sys_oabi_call_table
-#define COMPAT(nr, native, compat) syscall nr, compat
+#undef __SYSCALL_WITH_COMPAT
+#define __SYSCALL_WITH_COMPAT(nr, native, compat)	__SYSCALL(nr, compat)
 #include <calls-oabi.S>
 	syscall_table_end sys_oabi_call_table
 
diff --git a/arch/arm/tools/Makefile b/arch/arm/tools/Makefile
index 3654f979851b..d8be90f2bb41 100644
--- a/arch/arm/tools/Makefile
+++ b/arch/arm/tools/Makefile
@@ -10,7 +10,7 @@  kapi := $(gen)/asm
 uapi := $(gen)/uapi/asm
 syshdr := $(srctree)/$(src)/syscallhdr.sh
 sysnr := $(srctree)/$(src)/syscallnr.sh
-systbl := $(srctree)/$(src)/syscalltbl.sh
+systbl := $(srctree)/scripts/syscalltbl.sh
 syscall := $(src)/syscall.tbl
 
 gen-y := $(gen)/calls-oabi.S
@@ -47,8 +47,7 @@  quiet_cmd_syshdr = SYSHDR  $@
 		   '__NR_SYSCALL_BASE'
 
 quiet_cmd_systbl = SYSTBL  $@
-      cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@' \
-		   '$(systbl_abi_$(basetarget))'
+      cmd_systbl = $(CONFIG_SHELL) $(systbl) --abis $(abis) $< $@
 
 quiet_cmd_sysnr  = SYSNR   $@
       cmd_sysnr  = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@' \
@@ -70,10 +69,10 @@  sysnr_abi_unistd-nr := common,oabi,eabi,compat
 $(kapi)/unistd-nr.h: $(syscall) $(sysnr) FORCE
 	$(call if_changed,sysnr)
 
-systbl_abi_calls-oabi := common,oabi
+$(gen)/calls-oabi.S: abis := common,oabi
 $(gen)/calls-oabi.S: $(syscall) $(systbl) FORCE
 	$(call if_changed,systbl)
 
-systbl_abi_calls-eabi := common,eabi
+$(gen)/calls-eabi.S: abis := common,eabi
 $(gen)/calls-eabi.S: $(syscall) $(systbl) FORCE
 	$(call if_changed,systbl)
diff --git a/arch/arm/tools/syscalltbl.sh b/arch/arm/tools/syscalltbl.sh
deleted file mode 100644
index ae7e93cfbfd3..000000000000
--- a/arch/arm/tools/syscalltbl.sh
+++ /dev/null
@@ -1,22 +0,0 @@ 
-#!/bin/sh
-# SPDX-License-Identifier: GPL-2.0
-in="$1"
-out="$2"
-my_abis=`echo "($3)" | tr ',' '|'`
-
-grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
-    while read nr abi name entry compat; do
-        if [ "$abi" = "eabi" -a -n "$compat" ]; then
-            echo "$in: error: a compat entry for an EABI syscall ($name) makes no sense" >&2
-            exit 1
-        fi
-
-	if [ -n "$entry" ]; then
-            if [ -z "$compat" ]; then
-                echo "NATIVE($nr, $entry)"
-            else
-                echo "COMPAT($nr, $entry, $compat)"
-            fi
-        fi
-    done
-) > "$out"