linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] sh: Unify the system call scripts
@ 2019-01-02 15:37 Firoz Khan
  2019-01-02 15:37 ` [PATCH 1/2] sh: remove nargs from __SYSCALL Firoz Khan
  2019-01-02 15:37 ` [PATCH 2/2] sh: generate uapi header and syscall table header files Firoz Khan
  0 siblings, 2 replies; 7+ messages in thread
From: Firoz Khan @ 2019-01-02 15:37 UTC (permalink / raw)
  To: Yoshinori Sato, Rich Felker, Andrew Morton, Simon Horman,
	Kuninori Morimoto, linux-sh, Greg Kroah-Hartman,
	Philippe Ombredanne, Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

System call table generation support is provided for
alpha, ia64, m68k, microblaze, mips, parisc, powerpc,
sh, sparc and xtensa architectures. The implementat-
ions are almost similar across all the above archte-
ctures. In order to reduce the source code across all
the above architectures, create common ".sh" files and
keep it in the common directory, script/. This will 
be a generic scripts which can use for all the above
architectures.

This patch depends on;
 https://lore.kernel.org/lkml/1546439331-18646-1-git-send-email-firoz.khan@linaro.org/

Firoz Khan (2):
  sh: remove nargs from __SYSCALL
  sh: generate uapi header and syscall table header files

 arch/sh/kernel/syscalls/Makefile      | 11 +++++++++--
 arch/sh/kernel/syscalls/syscallhdr.sh | 36 -----------------------------------
 arch/sh/kernel/syscalls/syscalltbl.sh | 32 -------------------------------
 arch/sh/kernel/syscalls_32.S          |  2 +-
 4 files changed, 10 insertions(+), 71 deletions(-)
 delete mode 100644 arch/sh/kernel/syscalls/syscallhdr.sh
 delete mode 100644 arch/sh/kernel/syscalls/syscalltbl.sh

-- 
1.9.1


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

* [PATCH 1/2] sh: remove nargs from __SYSCALL
  2019-01-02 15:37 [PATCH 0/2] sh: Unify the system call scripts Firoz Khan
@ 2019-01-02 15:37 ` Firoz Khan
  2019-01-02 15:37 ` [PATCH 2/2] sh: generate uapi header and syscall table header files Firoz Khan
  1 sibling, 0 replies; 7+ messages in thread
From: Firoz Khan @ 2019-01-02 15:37 UTC (permalink / raw)
  To: Yoshinori Sato, Rich Felker, Andrew Morton, Simon Horman,
	Kuninori Morimoto, linux-sh, Greg Kroah-Hartman,
	Philippe Ombredanne, Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

The __SYSCALL macro's arguments are system call number,
system call entry name and number of arguments for the
system call.

Argument- nargs in __SYSCALL(nr, entry, nargs) is neither
calculated nor used anywhere. So it would be better to
keep the implementaion as  __SYSCALL(nr, entry). This will
unifies the implementation with some other architetures
too.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/sh/kernel/syscalls/syscalltbl.sh | 4 ++--
 arch/sh/kernel/syscalls_32.S          | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/sh/kernel/syscalls/syscalltbl.sh b/arch/sh/kernel/syscalls/syscalltbl.sh
index 85d78d9..904b8e6 100644
--- a/arch/sh/kernel/syscalls/syscalltbl.sh
+++ b/arch/sh/kernel/syscalls/syscalltbl.sh
@@ -13,10 +13,10 @@ emit() {
 	t_entry="$3"
 
 	while [ $t_nxt -lt $t_nr ]; do
-		printf "__SYSCALL(%s, sys_ni_syscall, )\n" "${t_nxt}"
+		printf "__SYSCALL(%s,sys_ni_syscall)\n" "${t_nxt}"
 		t_nxt=$((t_nxt+1))
 	done
-	printf "__SYSCALL(%s, %s, )\n" "${t_nxt}" "${t_entry}"
+	printf "__SYSCALL(%s,%s)\n" "${t_nxt}" "${t_entry}"
 }
 
 grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
diff --git a/arch/sh/kernel/syscalls_32.S b/arch/sh/kernel/syscalls_32.S
index 96e9c54..bd1a9c5 100644
--- a/arch/sh/kernel/syscalls_32.S
+++ b/arch/sh/kernel/syscalls_32.S
@@ -10,7 +10,7 @@
 #include <linux/sys.h>
 #include <linux/linkage.h>
 
-#define __SYSCALL(nr, entry, nargs) .long entry
+#define __SYSCALL(nr, entry)	.long entry
 	.data
 ENTRY(sys_call_table)
 #include <asm/syscall_table.h>
-- 
1.9.1


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

* [PATCH 2/2] sh: generate uapi header and syscall table header files
  2019-01-02 15:37 [PATCH 0/2] sh: Unify the system call scripts Firoz Khan
  2019-01-02 15:37 ` [PATCH 1/2] sh: remove nargs from __SYSCALL Firoz Khan
@ 2019-01-02 15:37 ` Firoz Khan
  2019-01-10 23:54   ` Guenter Roeck
  1 sibling, 1 reply; 7+ messages in thread
From: Firoz Khan @ 2019-01-02 15:37 UTC (permalink / raw)
  To: Yoshinori Sato, Rich Felker, Andrew Morton, Simon Horman,
	Kuninori Morimoto, linux-sh, Greg Kroah-Hartman,
	Philippe Ombredanne, Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

Unified system call table generation script must be run to
generate unistd_32.h and syscall_table.h files. This patch
will have changes which will invokes the script.

This patch will generate unistd_32.h and syscall_table.h
files by the syscall table generation script invoked by
sh/Makefile and the generated files against the removed
files must be identical.

The generated uapi header file will be included in uapi/-
asm/unistd.h and generated system call table header file
will be included by kernel/syscall_32.S file.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/sh/kernel/syscalls/Makefile      | 11 +++++++++--
 arch/sh/kernel/syscalls/syscallhdr.sh | 36 -----------------------------------
 arch/sh/kernel/syscalls/syscalltbl.sh | 32 -------------------------------
 3 files changed, 9 insertions(+), 70 deletions(-)
 delete mode 100644 arch/sh/kernel/syscalls/syscallhdr.sh
 delete mode 100644 arch/sh/kernel/syscalls/syscalltbl.sh

diff --git a/arch/sh/kernel/syscalls/Makefile b/arch/sh/kernel/syscalls/Makefile
index 659faef..75c7421 100644
--- a/arch/sh/kernel/syscalls/Makefile
+++ b/arch/sh/kernel/syscalls/Makefile
@@ -6,8 +6,9 @@ _dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)')	\
 	  $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')
 
 syscall := $(srctree)/$(src)/syscall.tbl
-syshdr := $(srctree)/$(src)/syscallhdr.sh
-systbl := $(srctree)/$(src)/syscalltbl.sh
+syshdr := $(srctree)/scripts/syscallhdr.sh
+sysnr := $(srctree)/scripts/syscallnr.sh
+systbl := $(srctree)/scripts/syscalltbl.sh
 
 quiet_cmd_syshdr = SYSHDR  $@
       cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@'	\
@@ -15,6 +16,12 @@ quiet_cmd_syshdr = SYSHDR  $@
 		   '$(syshdr_pfx_$(basetarget))'		\
 		   '$(syshdr_offset_$(basetarget))'
 
+quiet_cmd_sysnr = SYSNR  $@
+      cmd_sysnr = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@'		\
+		  '$(sysnr_abis_$(basetarget))'			\
+		  '$(sysnr_pfx_$(basetarget))'			\
+		  '$(sysnr_offset_$(basetarget))'
+
 quiet_cmd_systbl = SYSTBL  $@
       cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@'	\
 		   '$(systbl_abis_$(basetarget))'		\
diff --git a/arch/sh/kernel/syscalls/syscallhdr.sh b/arch/sh/kernel/syscalls/syscallhdr.sh
deleted file mode 100644
index 1de0334..0000000
--- a/arch/sh/kernel/syscalls/syscallhdr.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-# SPDX-License-Identifier: GPL-2.0
-
-in="$1"
-out="$2"
-my_abis=`echo "($3)" | tr ',' '|'`
-prefix="$4"
-offset="$5"
-
-fileguard=_UAPI_ASM_SH_`basename "$out" | sed \
-	-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
-	-e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
-grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
-	printf "#ifndef %s\n" "${fileguard}"
-	printf "#define %s\n" "${fileguard}"
-	printf "\n"
-
-	nxt=0
-	while read nr abi name entry ; do
-		if [ -z "$offset" ]; then
-			printf "#define __NR_%s%s\t%s\n" \
-				"${prefix}" "${name}" "${nr}"
-		else
-			printf "#define __NR_%s%s\t(%s + %s)\n" \
-				"${prefix}" "${name}" "${offset}" "${nr}"
-		fi
-		nxt=$((nr+1))
-	done
-
-	printf "\n"
-	printf "#ifdef __KERNEL__\n"
-	printf "#define __NR_syscalls\t%s\n" "${nxt}"
-	printf "#endif\n"
-	printf "\n"
-	printf "#endif /* %s */" "${fileguard}"
-) > "$out"
diff --git a/arch/sh/kernel/syscalls/syscalltbl.sh b/arch/sh/kernel/syscalls/syscalltbl.sh
deleted file mode 100644
index 904b8e6..0000000
--- a/arch/sh/kernel/syscalls/syscalltbl.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-# SPDX-License-Identifier: GPL-2.0
-
-in="$1"
-out="$2"
-my_abis=`echo "($3)" | tr ',' '|'`
-my_abi="$4"
-offset="$5"
-
-emit() {
-	t_nxt="$1"
-	t_nr="$2"
-	t_entry="$3"
-
-	while [ $t_nxt -lt $t_nr ]; do
-		printf "__SYSCALL(%s,sys_ni_syscall)\n" "${t_nxt}"
-		t_nxt=$((t_nxt+1))
-	done
-	printf "__SYSCALL(%s,%s)\n" "${t_nxt}" "${t_entry}"
-}
-
-grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
-	nxt=0
-	if [ -z "$offset" ]; then
-		offset=0
-	fi
-
-	while read nr abi name entry ; do
-		emit $((nxt+offset)) $((nr+offset)) $entry
-		nxt=$((nr+1))
-	done
-) > "$out"
-- 
1.9.1


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

* Re: [PATCH 2/2] sh: generate uapi header and syscall table header files
  2019-01-02 15:37 ` [PATCH 2/2] sh: generate uapi header and syscall table header files Firoz Khan
@ 2019-01-10 23:54   ` Guenter Roeck
  2019-01-12  4:21     ` Rob Landley
  2019-01-12  9:22     ` Geert Uytterhoeven
  0 siblings, 2 replies; 7+ messages in thread
From: Guenter Roeck @ 2019-01-10 23:54 UTC (permalink / raw)
  To: Firoz Khan
  Cc: Yoshinori Sato, Rich Felker, Andrew Morton, Simon Horman,
	Kuninori Morimoto, linux-sh, Greg Kroah-Hartman,
	Philippe Ombredanne, Thomas Gleixner, Kate Stewart, y2038,
	linux-kernel, linux-arch, arnd, deepa.kernel, marcin.juszkiewicz

On Wed, Jan 02, 2019 at 09:07:25PM +0530, Firoz Khan wrote:
> Unified system call table generation script must be run to
> generate unistd_32.h and syscall_table.h files. This patch
> will have changes which will invokes the script.
> 
> This patch will generate unistd_32.h and syscall_table.h
> files by the syscall table generation script invoked by
> sh/Makefile and the generated files against the removed
> files must be identical.
> 
> The generated uapi header file will be included in uapi/-
> asm/unistd.h and generated system call table header file
> will be included by kernel/syscall_32.S file.
> 
> Signed-off-by: Firoz Khan <firoz.khan@linaro.org>

Have you tested this patch ?

Building sh:defconfig ... failed
--------------
Error log:
make[2]: *** No rule to make target
'/opt/buildbot/slave/next-next/build/scripts/syscalltbl.sh',
	needed by 'arch/sh/include/generated/asm/syscall_table.h'.  Stop.

This affects all 'sh' builds. Not surprisingly, reverting the patch fixes
the problem.

Guenter

---
# bad: [6cab33afc3dd17bd9922c99a828f5680b4667cd9] Add linux-next specific files for 20190110
# good: [bfeffd155283772bbe78c6a05dec7c0128ee500c] Linux 5.0-rc1
git bisect start 'HEAD' 'v5.0-rc1'
# good: [45daa05b201d684d42a186970731a9e39f75beb7] Merge remote-tracking branch 'mtd/mtd/next'
git bisect good 45daa05b201d684d42a186970731a9e39f75beb7
# good: [62d9bf7cbfd16d41f30de4439d7349c70d99923b] Merge remote-tracking branch 'tip/auto-latest'
git bisect good 62d9bf7cbfd16d41f30de4439d7349c70d99923b
# good: [cff8f6ab40ac1f5681ba37a663382d0c5d1b07d1] Merge remote-tracking branch 'vhost/linux-next'
git bisect good cff8f6ab40ac1f5681ba37a663382d0c5d1b07d1
# bad: [ed7209d69de4c01d589b030c34412d093aac3801] mm: initialize MAX_ORDER_NR_PAGES at a time instead of doing larger sections
git bisect bad ed7209d69de4c01d589b030c34412d093aac3801
# bad: [8fd9cdac0385dcec3534d79bf6ad29e33a6cfe1f] vmalloc: add test driver to analyse vmalloc allocator
git bisect bad 8fd9cdac0385dcec3534d79bf6ad29e33a6cfe1f
# good: [e804aa1e321d349514c121c3bff66dee1cff3dd5] sh: remove nargs from __SYSCALL
git bisect good e804aa1e321d349514c121c3bff66dee1cff3dd5
# bad: [7f3303ead0bd6fc02ca0d5a2e6a3ce8f653afbea] mm: reuse only-pte-mapped KSM page in do_wp_page()
git bisect bad 7f3303ead0bd6fc02ca0d5a2e6a3ce8f653afbea
# bad: [7dc035ee0653362ae11187152ac5942e230fb523] fs/file.c: initialize init_files.resize_wait
git bisect bad 7dc035ee0653362ae11187152ac5942e230fb523
# bad: [539eec285bc3a61570493f08fca6d84e09e77d3c] ocfs2: clear zero in unaligned direct IO
git bisect bad 539eec285bc3a61570493f08fca6d84e09e77d3c
# bad: [63ef58895f79a7dea083dff346a6504b87e1a7dc] lib/debugobjects.c: move printk out of db lock critical sections
git bisect bad 63ef58895f79a7dea083dff346a6504b87e1a7dc
# bad: [60a47bb1b736b2be71ff6f256693595af5c707e8] sh: generate uapi header and syscall table header files
git bisect bad 60a47bb1b736b2be71ff6f256693595af5c707e8
# first bad commit: [60a47bb1b736b2be71ff6f256693595af5c707e8] sh: generate uapi header and syscall table header files

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

* Re: [PATCH 2/2] sh: generate uapi header and syscall table header files
  2019-01-10 23:54   ` Guenter Roeck
@ 2019-01-12  4:21     ` Rob Landley
  2019-01-12  9:22     ` Geert Uytterhoeven
  1 sibling, 0 replies; 7+ messages in thread
From: Rob Landley @ 2019-01-12  4:21 UTC (permalink / raw)
  To: Guenter Roeck, Firoz Khan
  Cc: Yoshinori Sato, Rich Felker, Andrew Morton, Simon Horman,
	Kuninori Morimoto, linux-sh, Greg Kroah-Hartman,
	Philippe Ombredanne, Thomas Gleixner, Kate Stewart, y2038,
	linux-kernel, linux-arch, arnd, deepa.kernel, marcin.juszkiewicz

On 1/10/19 5:54 PM, Guenter Roeck wrote:
> On Wed, Jan 02, 2019 at 09:07:25PM +0530, Firoz Khan wrote:
>> Unified system call table generation script must be run to
>> generate unistd_32.h and syscall_table.h files. This patch
>> will have changes which will invokes the script.
>>
>> This patch will generate unistd_32.h and syscall_table.h
>> files by the syscall table generation script invoked by
>> sh/Makefile and the generated files against the removed
>> files must be identical.
>>
>> The generated uapi header file will be included in uapi/-
>> asm/unistd.h and generated system call table header file
>> will be included by kernel/syscall_32.S file.
>>
>> Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
> 
> Have you tested this patch ?

I tested it at one point, but not recently. (It was before 4.20 came out...)

Rob

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

* Re: [PATCH 2/2] sh: generate uapi header and syscall table header files
  2019-01-10 23:54   ` Guenter Roeck
  2019-01-12  4:21     ` Rob Landley
@ 2019-01-12  9:22     ` Geert Uytterhoeven
  2019-01-14  7:59       ` Firoz Khan
  1 sibling, 1 reply; 7+ messages in thread
From: Geert Uytterhoeven @ 2019-01-12  9:22 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Firoz Khan, Yoshinori Sato, Rich Felker, Andrew Morton,
	Simon Horman, Kuninori Morimoto, Linux-sh list,
	Greg Kroah-Hartman, Philippe Ombredanne, Thomas Gleixner,
	Kate Stewart, y2038 Mailman List, Linux Kernel Mailing List,
	Linux-Arch, Arnd Bergmann, Deepa Dinamani, Marcin Juszkiewicz

On Fri, Jan 11, 2019 at 1:37 AM Guenter Roeck <linux@roeck-us.net> wrote:
> On Wed, Jan 02, 2019 at 09:07:25PM +0530, Firoz Khan wrote:
> > Unified system call table generation script must be run to
> > generate unistd_32.h and syscall_table.h files. This patch
> > will have changes which will invokes the script.
> >
> > This patch will generate unistd_32.h and syscall_table.h
> > files by the syscall table generation script invoked by
> > sh/Makefile and the generated files against the removed
> > files must be identical.
> >
> > The generated uapi header file will be included in uapi/-
> > asm/unistd.h and generated system call table header file
> > will be included by kernel/syscall_32.S file.
> >
> > Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
>
> Have you tested this patch ?

All these series depend on "scripts: unify system call table generation
scripts"
https://lore.kernel.org/lkml/1546439331-18646-1-git-send-email-firoz.khan@linaro.org/

Yeah, 0day also didn't know that.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

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

* Re: [PATCH 2/2] sh: generate uapi header and syscall table header files
  2019-01-12  9:22     ` Geert Uytterhoeven
@ 2019-01-14  7:59       ` Firoz Khan
  0 siblings, 0 replies; 7+ messages in thread
From: Firoz Khan @ 2019-01-14  7:59 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Guenter Roeck, Yoshinori Sato, Rich Felker, Andrew Morton,
	Simon Horman, Kuninori Morimoto, Linux-sh list,
	Greg Kroah-Hartman, Philippe Ombredanne, Thomas Gleixner,
	Kate Stewart, y2038 Mailman List, Linux Kernel Mailing List,
	Linux-Arch, Arnd Bergmann, Deepa Dinamani, Marcin Juszkiewicz

Hi Geert, Rob, Guenter,

Thanks for the mail.

On Sat, 12 Jan 2019 at 14:53, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> On Fri, Jan 11, 2019 at 1:37 AM Guenter Roeck <linux@roeck-us.net> wrote:
> > On Wed, Jan 02, 2019 at 09:07:25PM +0530, Firoz Khan wrote:
> > Have you tested this patch ?

Yes.

>
> All these series depend on "scripts: unify system call table generation
> scripts"
> https://lore.kernel.org/lkml/1546439331-18646-1-git-send-email-firoz.khan@linaro.org/

Yes, This patch is depends on:
https://lore.kernel.org/lkml/1546439331-18646-1-git-send-email-firoz.khan@linaro.org/

FYI, I'm going to abandon this patch series (for other 9 architecture
also) and planning
to come up with asm-generic support along with this one. That can be
single patch
series. And everything can be landed in upstream in the same time.

Rob,

> I tested it at one point, but not recently. (It was before 4.20 came out...)

The one you tested is the previous version this patch series (w/o
unified script)

Thanks
Firoz

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

end of thread, other threads:[~2019-01-14  8:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-02 15:37 [PATCH 0/2] sh: Unify the system call scripts Firoz Khan
2019-01-02 15:37 ` [PATCH 1/2] sh: remove nargs from __SYSCALL Firoz Khan
2019-01-02 15:37 ` [PATCH 2/2] sh: generate uapi header and syscall table header files Firoz Khan
2019-01-10 23:54   ` Guenter Roeck
2019-01-12  4:21     ` Rob Landley
2019-01-12  9:22     ` Geert Uytterhoeven
2019-01-14  7:59       ` Firoz Khan

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).