linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: syscalls: switch to generic syscalltbl.sh
@ 2021-03-01 14:28 Masahiro Yamada
  2021-03-05 10:04 ` Linus Walleij
  0 siblings, 1 reply; 5+ messages in thread
From: Masahiro Yamada @ 2021-03-01 14:28 UTC (permalink / raw)
  To: patches
  Cc: linux-kernel, Masahiro Yamada, Abbott Liu, Ard Biesheuvel,
	Florian Fainelli, Jens Axboe, Linus Walleij, Russell King,
	linux-arm-kernel

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

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"
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] ARM: syscalls: switch to generic syscalltbl.sh
  2021-03-01 14:28 [PATCH] ARM: syscalls: switch to generic syscalltbl.sh Masahiro Yamada
@ 2021-03-05 10:04 ` Linus Walleij
  2021-03-05 14:53   ` Masahiro Yamada
  0 siblings, 1 reply; 5+ messages in thread
From: Linus Walleij @ 2021-03-05 10:04 UTC (permalink / raw)
  To: Masahiro Yamada, Arnd Bergmann
  Cc: patches, linux-kernel, Abbott Liu, Ard Biesheuvel,
	Florian Fainelli, Jens Axboe, Russell King, Linux ARM

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] ARM: syscalls: switch to generic syscalltbl.sh
  2021-03-05 10:04 ` Linus Walleij
@ 2021-03-05 14:53   ` Masahiro Yamada
  2021-03-25 14:10     ` Russell King - ARM Linux admin
  0 siblings, 1 reply; 5+ messages in thread
From: Masahiro Yamada @ 2021-03-05 14:53 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Arnd Bergmann, patches, linux-kernel, Abbott Liu, Ard Biesheuvel,
	Florian Fainelli, Jens Axboe, Russell King, Linux ARM

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] ARM: syscalls: switch to generic syscalltbl.sh
  2021-03-05 14:53   ` Masahiro Yamada
@ 2021-03-25 14:10     ` Russell King - ARM Linux admin
  0 siblings, 0 replies; 5+ messages in thread
From: Russell King - ARM Linux admin @ 2021-03-25 14:10 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Linus Walleij, Arnd Bergmann, patches, linux-kernel, Abbott Liu,
	Ard Biesheuvel, Florian Fainelli, Jens Axboe, Linux ARM

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

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] ARM: syscalls: switch to generic syscalltbl.sh
@ 2021-03-01 14:16 Masahiro Yamada
  0 siblings, 0 replies; 5+ messages in thread
From: Masahiro Yamada @ 2021-03-01 14:16 UTC (permalink / raw)
  To: patches
  Cc: linux-kernel, Masahiro Yamada, Ard Biesheuvel, Jens Axboe,
	Linus Walleij, Russell King, linux-arm-kernel

Many architectures duplicate similar shell scripts.

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

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

 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

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"
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-03-25 14:11 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-01 14:28 [PATCH] ARM: syscalls: switch to generic syscalltbl.sh Masahiro Yamada
2021-03-05 10:04 ` Linus Walleij
2021-03-05 14:53   ` Masahiro Yamada
2021-03-25 14:10     ` Russell King - ARM Linux admin
  -- strict thread matches above, loose matches on Subject: below --
2021-03-01 14:16 Masahiro Yamada

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).