linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/5] System call table generation support
@ 2018-10-01 12:37 Firoz Khan
  2018-10-01 12:37 ` [PATCH v3 1/5] m68k: rename system call table file name Firoz Khan
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Firoz Khan @ 2018-10-01 12:37 UTC (permalink / raw)
  To: Geert Uytterhoeven, linux-m68k, Greg Kroah-Hartman,
	Philippe Ombredanne, Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

The purpose of this patch series is:
1. We can easily add/modify/delete system call by changing entry 
in syscall.tbl file. No need to manually edit many files.

2. It is easy to unify the system call implementation across all 
the architectures. 

The system call tables are in different format in all architecture 
and it will be difficult to manually add or modify the system calls
in the respective files manually. To make it easy by keeping a script 
and which'll generate the header file and syscall table file so this 
change will unify them across all architectures.

syscall.tbl contains the list of available system calls along with 
system call number and corresponding entry point. Add a new system 
call in this architecture will be possible by adding new entry in 
the syscall.tbl file.

Adding a new table entry consisting of:
        - System call number.
        - ABI.
        - System call name.
        - Entry point name.
        - Compat entry name, if required.

ARM, s390 and x86 architecuture does exist the similar support. I 
leverage their implementation to come up with a generic solution.

I have done the same support for work for alpha, ia64, sparc, mips, 
parisc, powerpc, sh, sparc, and xtensa. But I started sending 
the patch for one architecuture for review. Below mentioned git
repository contains more details.
Git repo:- https://github.com/frzkhn/system_call_table_generator/

Finally, this is the ground work for solving the Y2038 issue. We 
need to add/change two dozen of system calls to solve Y2038 issue. 
So this patch series will help to easily modify from existing 
system call to Y2038 compatible system calls.

Firoz Khan (5):
  m68k: rename system call table file name
  m68k: replace NR_syscalls macro from asm/unistd.h
  m68k: add system call table generation support
  m68k: uapi header and system call table file generation
  m68k: add __IGNORE* entries in asm/unistd.h

 arch/m68k/Makefile                      |   3 +
 arch/m68k/include/asm/Kbuild            |   1 +
 arch/m68k/include/asm/unistd.h          |  10 +-
 arch/m68k/include/uapi/asm/Kbuild       |   1 +
 arch/m68k/include/uapi/asm/unistd.h     | 385 +-----------------------------
 arch/m68k/kernel/Makefile               |   2 +-
 arch/m68k/kernel/syscall_table.S        |  14 ++
 arch/m68k/kernel/syscalls/Makefile      |  38 +++
 arch/m68k/kernel/syscalls/syscall.tbl   | 369 +++++++++++++++++++++++++++++
 arch/m68k/kernel/syscalls/syscallhdr.sh |  35 +++
 arch/m68k/kernel/syscalls/syscalltbl.sh |  34 +++
 arch/m68k/kernel/syscalltable.S         | 403 --------------------------------
 12 files changed, 505 insertions(+), 790 deletions(-)
 create mode 100644 arch/m68k/kernel/syscall_table.S
 create mode 100644 arch/m68k/kernel/syscalls/Makefile
 create mode 100644 arch/m68k/kernel/syscalls/syscall.tbl
 create mode 100644 arch/m68k/kernel/syscalls/syscallhdr.sh
 create mode 100644 arch/m68k/kernel/syscalls/syscalltbl.sh
 delete mode 100644 arch/m68k/kernel/syscalltable.S

-- 
1.9.1


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

* [PATCH v3 1/5] m68k: rename system call table file name
  2018-10-01 12:37 [PATCH v3 0/5] System call table generation support Firoz Khan
@ 2018-10-01 12:37 ` Firoz Khan
  2018-10-01 12:37 ` [PATCH v3 2/5] m68k: replace NR_syscalls macro from asm/unistd.h Firoz Khan
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Firoz Khan @ 2018-10-01 12:37 UTC (permalink / raw)
  To: Geert Uytterhoeven, linux-m68k, Greg Kroah-Hartman,
	Philippe Ombredanne, Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

The system call table entries are present in syscalltable.S. One of
the patch in this patch series will auto-generate the system call
table entries using the system call table generation script and
which'll replace the existig table file.

In order to come up with a common naming convention across all
architecture, we need to change the file name to syscall_table.S.
This change will unify the implementation across all architecture.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/m68k/kernel/Makefile                            | 2 +-
 arch/m68k/kernel/{syscalltable.S => syscall_table.S} | 0
 2 files changed, 1 insertion(+), 1 deletion(-)
 rename arch/m68k/kernel/{syscalltable.S => syscall_table.S} (100%)

diff --git a/arch/m68k/kernel/Makefile b/arch/m68k/kernel/Makefile
index dbac7f8..5f40ce6 100644
--- a/arch/m68k/kernel/Makefile
+++ b/arch/m68k/kernel/Makefile
@@ -15,7 +15,7 @@ extra-$(CONFIG_SUN3)	:= sun3-head.o
 extra-y			+= vmlinux.lds
 
 obj-y	:= entry.o irq.o module.o process.o ptrace.o
-obj-y	+= setup.o signal.o sys_m68k.o syscalltable.o time.o traps.o
+obj-y	+= setup.o signal.o sys_m68k.o syscall_table.o time.o traps.o
 
 obj-$(CONFIG_MMU_MOTOROLA) += ints.o vectors.o
 obj-$(CONFIG_MMU_SUN3) += ints.o vectors.o
diff --git a/arch/m68k/kernel/syscalltable.S b/arch/m68k/kernel/syscall_table.S
similarity index 100%
rename from arch/m68k/kernel/syscalltable.S
rename to arch/m68k/kernel/syscall_table.S
-- 
1.9.1


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

* [PATCH v3 2/5] m68k: replace NR_syscalls macro from asm/unistd.h
  2018-10-01 12:37 [PATCH v3 0/5] System call table generation support Firoz Khan
  2018-10-01 12:37 ` [PATCH v3 1/5] m68k: rename system call table file name Firoz Khan
@ 2018-10-01 12:37 ` Firoz Khan
  2018-10-01 12:37 ` [PATCH v3 3/5] m68k: add system call table generation support Firoz Khan
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Firoz Khan @ 2018-10-01 12:37 UTC (permalink / raw)
  To: Geert Uytterhoeven, linux-m68k, Greg Kroah-Hartman,
	Philippe Ombredanne, Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

NR_syscalls macro holds the number of system call exist in m68k
architecture. This macro is currently the part of asm/unistd.h file.
We have to change the value of NR_syscalls, if we add or delete a
system call.

One of patch in this patch series has a script which will generate
a uapi header based on syscall.tbl file. The syscall.tbl file
contains the number of system call information. So we have two
option to update NR_syscalls value.

1. Update NR_syscalls in asm/unistd.h manually by counting the
   no.of system calls. No need to update NR_syscalls until
   we either add a new system call or delete an existing system
   call.

2. We can keep this feature it above mentioned script, that'll
   count the number of syscalls and keep it in a generated file.
   In this case we don't need to explicitly update NR_syscalls
   in asm/unistd.h file.

The 2nd option will be the recommended one. For that, I come up
with another macro - __NR_syscalls which will be updated by the
script and it will be present in api/asm/unistd.h. While __NR_syscalls
isn't strictly part of the uapi, having it as part of the generated
header to simplifies the implementation. So we need to enclose this
macro with #ifdef __KERNEL__ to avoid side effects.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/m68k/include/asm/unistd.h      | 3 +--
 arch/m68k/include/uapi/asm/unistd.h | 4 ++++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/arch/m68k/include/asm/unistd.h b/arch/m68k/include/asm/unistd.h
index 30d0d3f..5072e94 100644
--- a/arch/m68k/include/asm/unistd.h
+++ b/arch/m68k/include/asm/unistd.h
@@ -4,8 +4,7 @@
 
 #include <uapi/asm/unistd.h>
 
-
-#define NR_syscalls		380
+#define NR_syscalls __NR_syscalls
 
 #define __ARCH_WANT_OLD_READDIR
 #define __ARCH_WANT_OLD_STAT
diff --git a/arch/m68k/include/uapi/asm/unistd.h b/arch/m68k/include/uapi/asm/unistd.h
index de3054f..ba4176aa 100644
--- a/arch/m68k/include/uapi/asm/unistd.h
+++ b/arch/m68k/include/uapi/asm/unistd.h
@@ -387,4 +387,8 @@
 #define __NR_pwritev2		378
 #define __NR_statx		379
 
+#ifdef __KERNEL__
+#define __NR_syscalls		380
+#endif
+
 #endif /* _UAPI_ASM_M68K_UNISTD_H_ */
-- 
1.9.1


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

* [PATCH v3 3/5] m68k: add system call table generation support
  2018-10-01 12:37 [PATCH v3 0/5] System call table generation support Firoz Khan
  2018-10-01 12:37 ` [PATCH v3 1/5] m68k: rename system call table file name Firoz Khan
  2018-10-01 12:37 ` [PATCH v3 2/5] m68k: replace NR_syscalls macro from asm/unistd.h Firoz Khan
@ 2018-10-01 12:37 ` Firoz Khan
  2018-10-01 22:52   ` Finn Thain
  2018-10-01 12:37 ` [PATCH v3 4/5] m68k: uapi header and system call table file generation Firoz Khan
  2018-10-01 12:37 ` [PATCH v3 5/5] m68k: add __IGNORE* entries in asm/unistd.h Firoz Khan
  4 siblings, 1 reply; 9+ messages in thread
From: Firoz Khan @ 2018-10-01 12:37 UTC (permalink / raw)
  To: Geert Uytterhoeven, linux-m68k, Greg Kroah-Hartman,
	Philippe Ombredanne, Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

The system call tables are in different format in all
architecture and it will be difficult to manually add or
modify the system calls in the respective files. To make
it easy by keeping a script and which'll generate the
header file and syscall table file so this change will
unify them across all architectures.

The system call table generation script is added in
syscalls directory which contain the script to generate
both uapi header file system call table generation file
and syscall.tbl file which'll be the input for the scripts.

syscall.tbl contains the list of available system calls
along with system call number and corresponding entry point.
Add a new system call in this architecture will be possible
by adding new entry in the syscall.tbl file.

Adding a new table entry consisting of:
        - System call number.
        - ABI.
        - System call name.
        - Entry point name.

syscallhdr.sh and syscalltbl.sh will generate uapi header-
unistd.h and syscall_table.h files respectively. File
syscall_table.h is included by syscall_table.S - the real
system call table. Both .sh files will parse the content
syscall.tbl to generate the header and table files.

ARM, s390 and x86 architecuture does have the similar support.
I leverage their implementation to come up with a generic
solution. And this is the ground work for y2038 issue. We need
to change two dozons of system call implementation and this
work will reduce the effort by simply modify two dozon entries
in syscall.tbl.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/m68k/kernel/syscalls/Makefile      |  38 ++++
 arch/m68k/kernel/syscalls/syscall.tbl   | 369 ++++++++++++++++++++++++++++++++
 arch/m68k/kernel/syscalls/syscallhdr.sh |  35 +++
 arch/m68k/kernel/syscalls/syscalltbl.sh |  34 +++
 4 files changed, 476 insertions(+)
 create mode 100644 arch/m68k/kernel/syscalls/Makefile
 create mode 100644 arch/m68k/kernel/syscalls/syscall.tbl
 create mode 100644 arch/m68k/kernel/syscalls/syscallhdr.sh
 create mode 100644 arch/m68k/kernel/syscalls/syscalltbl.sh

diff --git a/arch/m68k/kernel/syscalls/Makefile b/arch/m68k/kernel/syscalls/Makefile
new file mode 100644
index 0000000..d255d32
--- /dev/null
+++ b/arch/m68k/kernel/syscalls/Makefile
@@ -0,0 +1,38 @@
+# SPDX-License-Identifier: GPL-2.0
+out := arch/$(SRCARCH)/include/generated/asm
+uapi := arch/$(SRCARCH)/include/generated/uapi/asm
+
+_dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \
+	  $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
+
+syscall := $(srctree)/$(src)/syscall.tbl
+
+syshdr := $(srctree)/$(src)/syscallhdr.sh
+systbl := $(srctree)/$(src)/syscalltbl.sh
+
+quiet_cmd_syshdr = SYSHDR  $@
+      cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@'  \
+		   '$(syshdr_abi_$(basetarget))'          \
+		   '$(syshdr_pfx_$(basetarget))'          \
+		   '$(syshdr_offset_$(basetarget))'
+
+quiet_cmd_systbl = SYSTBL  $@
+      cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@'  \
+		   '$(systbl_abi_$(basetarget))'	  \
+		   '$(systbl_offset_$(basetarget))'
+
+$(uapi)/unistd_32.h: $(syscall) $(syshdr)
+	$(call if_changed,syshdr)
+
+$(out)/syscall_table.h: $(syscall) $(systbl)
+	$(call if_changed,systbl)
+
+uapisyshdr-y			+= unistd_32.h
+syshdr-y			+= syscall_table.h
+
+targets	+= $(uapisyshdr-y) $(syshdr-y)
+
+PHONY += all
+all: $(addprefix $(uapi)/,$(uapisyshdr-y))
+all: $(addprefix $(out)/,$(syshdr-y))
+	@:
diff --git a/arch/m68k/kernel/syscalls/syscall.tbl b/arch/m68k/kernel/syscalls/syscall.tbl
new file mode 100644
index 0000000..ab151cd
--- /dev/null
+++ b/arch/m68k/kernel/syscalls/syscall.tbl
@@ -0,0 +1,369 @@
+#
+# Linux system call numbers and entry vectors
+#
+# The format is:
+# <number> <abi> <name> <entry point>
+#
+# The abi is always common for this file.
+#
+0       common   restart_syscall          sys_restart_syscall
+1       common   exit                     sys_exit
+2       common   fork                     __sys_fork
+3       common   read                     sys_read
+4       common   write                    sys_write
+5       common   open                     sys_open
+6       common   close                    sys_close
+7       common   waitpid                  sys_waitpid
+8       common   creat                    sys_creat
+9       common   link                     sys_link
+10      common   unlink                   sys_unlink
+11      common   execve                   sys_execve
+12      common   chdir                    sys_chdir
+13      common   time                     sys_time
+14      common   mknod                    sys_mknod
+15      common   chmod                    sys_chmod
+16      common   chown                    sys_chown16
+18      common   oldstat                  sys_stat
+19      common   lseek                    sys_lseek
+20      common   getpid                   sys_getpid
+21      common   mount                    sys_mount
+22      common   umount                   sys_oldumount
+23      common   setuid                   sys_setuid16
+24      common   getuid                   sys_getuid16
+25      common   stime                    sys_stime
+26      common   ptrace                   sys_ptrace
+27      common   alarm                    sys_alarm
+28      common   oldfstat                 sys_fstat
+29      common   pause                    sys_pause
+30      common   utime                    sys_utime
+33      common   access                   sys_access
+34      common   nice                     sys_nice
+36      common   sync                     sys_sync
+37      common   kill                     sys_kill
+38      common   rename                   sys_rename
+39      common   mkdir                    sys_mkdir
+40      common   rmdir                    sys_rmdir
+41      common   dup                      sys_dup
+42      common   pipe                     sys_pipe
+43      common   times                    sys_times
+45      common   brk                      sys_brk
+46      common   setgid                   sys_setgid16
+47      common   getgid                   sys_getgid16
+48      common   signal                   sys_signal
+49      common   geteuid                  sys_geteuid16
+50      common   getegid                  sys_getegid16
+51      common   acct                     sys_acct
+52      common   umount2                  sys_umount
+54      common   ioctl                    sys_ioctl
+55      common   fcntl                    sys_fcntl
+57      common   setpgid                  sys_setpgid
+60      common   umask                    sys_umask
+61      common   chroot                   sys_chroot
+62      common   ustat                    sys_ustat
+63      common   dup2                     sys_dup2
+64      common   getppid                  sys_getppid
+65      common   getpgrp                  sys_getpgrp
+66      common   setsid                   sys_setsid
+67      common   sigaction                sys_sigaction
+68      common   sgetmask                 sys_sgetmask
+69      common   ssetmask                 sys_ssetmask
+70      common   setreuid                 sys_setreuid16
+71      common   setregid                 sys_setregid16
+72      common   sigsuspend               sys_sigsuspend
+73      common   sigpending               sys_sigpending
+74      common   sethostname              sys_sethostname
+75      common   setrlimit                sys_setrlimit
+76      common   getrlimit                sys_old_getrlimit
+77      common   getrusage                sys_getrusage
+78      common   gettimeofday             sys_gettimeofday
+79      common   settimeofday             sys_settimeofday
+80      common   getgroups                sys_getgroups16
+81      common   setgroups                sys_setgroups16
+82      common   select                   sys_old_select
+83      common   symlink                  sys_symlink
+84      common   oldlstat                 sys_lstat
+85      common   readlink                 sys_readlink
+86      common   uselib                   sys_uselib
+87      common   swapon                   sys_swapon
+88      common   reboot                   sys_reboot
+89      common   readdir                  sys_old_readdir
+90      common   mmap                     sys_old_mmap
+91      common   munmap                   sys_munmap
+92      common   truncate                 sys_truncate
+93      common   ftruncate                sys_ftruncate
+94      common   fchmod                   sys_fchmod
+95      common   fchown                   sys_fchown16
+96      common   getpriority              sys_getpriority
+97      common   setpriority              sys_setpriority
+99      common   statfs                   sys_statfs
+100     common   fstatfs                  sys_fstatfs
+102     common   socketcall               sys_socketcall
+103     common   syslog                   sys_syslog
+104     common   setitimer                sys_setitimer
+105     common   getitimer                sys_getitimer
+106     common   stat                     sys_newstat
+107     common   lstat                    sys_newlstat
+108     common   fstat                    sys_newfstat
+111     common   vhangup                  sys_vhangup
+114     common   wait4                    sys_wait4
+115     common   swapoff                  sys_swapoff
+116     common   sysinfo                  sys_sysinfo
+117     common   ipc                      sys_ipc
+118     common   fsync                    sys_fsync
+119     common   sigreturn                sys_sigreturn
+120     common   clone                    __sys_clone
+121     common   setdomainname            sys_setdomainname
+122     common   uname                    sys_newuname
+123     common   cacheflush               sys_cacheflush
+124     common   adjtimex                 sys_adjtimex
+125     common   mprotect                 sys_mprotect
+126     common   sigprocmask              sys_sigprocmask
+127     common   create_module            sys_ni_syscall
+128     common   init_module              sys_init_module
+129     common   delete_module            sys_delete_module
+130     common   get_kernel_syms          sys_ni_syscall
+131     common   quotactl                 sys_quotactl
+132     common   getpgid                  sys_getpgid
+133     common   fchdir                   sys_fchdir
+134     common   bdflush                  sys_bdflush
+135     common   sysfs                    sys_sysfs
+136     common   personality              sys_personality
+138     common   setfsuid                 sys_setfsuid16
+139     common   setfsgid                 sys_setfsgid16
+140     common   _llseek                  sys_llseek
+141     common   getdents                 sys_getdents
+142     common   _newselect               sys_select
+143     common   flock                    sys_flock
+144     common   msync                    sys_msync
+145     common   readv                    sys_readv
+146     common   writev                   sys_writev
+147     common   getsid                   sys_getsid
+148     common   fdatasync                sys_fdatasync
+149     common   _sysctl                  sys_sysctl
+150     common   mlock                    sys_mlock
+151     common   munlock                  sys_munlock
+152     common   mlockall                 sys_mlockall
+153     common   munlockall               sys_munlockall
+154     common   sched_setparam           sys_sched_setparam
+155     common   sched_getparam           sys_sched_getparam
+156     common   sched_setscheduler       sys_sched_setscheduler
+157     common   sched_getscheduler       sys_sched_getscheduler
+158     common   sched_yield              sys_sched_yield
+159     common   sched_get_priority_max   sys_sched_get_priority_max
+160     common   sched_get_priority_min   sys_sched_get_priority_min
+161     common   sched_rr_get_interval    sys_sched_rr_get_interval
+162     common   nanosleep                sys_nanosleep
+163     common   mremap                   sys_mremap
+164     common   setresuid                sys_setresuid16
+165     common   getresuid                sys_getresuid16
+166     common   getpagesize              sys_getpagesize
+167     common   query_module             sys_ni_syscall
+168     common   poll                     sys_poll
+169     common   nfsservctl               sys_ni_syscall
+170     common   setresgid                sys_setresgid16
+171     common   getresgid                sys_getresgid16
+172     common   prctl                    sys_prctl
+173     common   rt_sigreturn             sys_rt_sigreturn
+174     common   rt_sigaction             sys_rt_sigaction
+175     common   rt_sigprocmask           sys_rt_sigprocmask
+176     common   rt_sigpending            sys_rt_sigpending
+177     common   rt_sigtimedwait          sys_rt_sigtimedwait
+178     common   rt_sigqueueinfo          sys_rt_sigqueueinfo
+179     common   rt_sigsuspend            sys_rt_sigsuspend
+180     common   pread64                  sys_pread64
+181     common   pwrite64                 sys_pwrite64
+182     common   lchown                   sys_lchown16
+183     common   getcwd                   sys_getcwd
+184     common   capget                   sys_capget
+185     common   capset                   sys_capset
+186     common   sigaltstack              sys_sigaltstack
+187     common   sendfile                 sys_sendfile
+188     common   getpmsg                  sys_ni_syscall
+189     common   putpmsg                  sys_ni_syscall
+190     common   vfork                    __sys_vfork
+191     common   ugetrlimit               sys_getrlimit
+192     common   mmap2                    sys_mmap2
+193     common   truncate64               sys_truncate64
+194     common   ftruncate64              sys_ftruncate64
+195     common   stat64                   sys_stat64
+196     common   lstat64                  sys_lstat64
+197     common   fstat64                  sys_fstat64
+198     common   chown32                  sys_chown
+199     common   getuid32                 sys_getuid
+200     common   getgid32                 sys_getgid
+201     common   geteuid32                sys_geteuid
+202     common   getegid32                sys_getegid
+203     common   setreuid32               sys_setreuid
+204     common   setregid32               sys_setregid
+205     common   getgroups32              sys_getgroups
+206     common   setgroups32              sys_setgroups
+207     common   fchown32                 sys_fchown
+208     common   setresuid32              sys_setresuid
+209     common   getresuid32              sys_getresuid
+210     common   setresgid32              sys_setresgid
+211     common   getresgid32              sys_getresgid
+212     common   lchown32                 sys_lchown
+213     common   setuid32                 sys_setuid
+214     common   setgid32                 sys_setgid
+215     common   setfsuid32               sys_setfsuid
+216     common   setfsgid32               sys_setfsgid
+217     common   pivot_root               sys_pivot_root
+220     common   getdents64               sys_getdents64
+221     common   gettid                   sys_gettid
+222     common   tkill                    sys_tkill
+223     common   setxattr                 sys_setxattr
+224     common   lsetxattr                sys_lsetxattr
+225     common   fsetxattr                sys_fsetxattr
+226     common   getxattr                 sys_getxattr
+227     common   lgetxattr                sys_lgetxattr
+228     common   fgetxattr                sys_fgetxattr
+229     common   listxattr                sys_listxattr
+230     common   llistxattr               sys_llistxattr
+231     common   flistxattr               sys_flistxattr
+232     common   removexattr              sys_removexattr
+233     common   lremovexattr             sys_lremovexattr
+234     common   fremovexattr             sys_fremovexattr
+235     common   futex                    sys_futex
+236     common   sendfile64               sys_sendfile64
+237     common   mincore                  sys_mincore
+238     common   madvise                  sys_madvise
+239     common   fcntl64                  sys_fcntl64
+240     common   readahead                sys_readahead
+241     common   io_setup                 sys_io_setup
+242     common   io_destroy               sys_io_destroy
+243     common   io_getevents             sys_io_getevents
+244     common   io_submit                sys_io_submit
+245     common   io_cancel                sys_io_cancel
+246     common   fadvise64                sys_fadvise64
+247     common   exit_group               sys_exit_group
+248     common   lookup_dcookie           sys_lookup_dcookie
+249     common   epoll_create             sys_epoll_create
+250     common   epoll_ctl                sys_epoll_ctl
+251     common   epoll_wait               sys_epoll_wait
+252     common   remap_file_pages         sys_remap_file_pages
+253     common   set_tid_address          sys_set_tid_address
+254     common   timer_create             sys_timer_create
+255     common   timer_settime            sys_timer_settime
+256     common   timer_gettime            sys_timer_gettime
+257     common   timer_getoverrun         sys_timer_getoverrun
+258     common   timer_delete             sys_timer_delete
+259     common   clock_settime            sys_clock_settime
+260     common   clock_gettime            sys_clock_gettime
+261     common   clock_getres             sys_clock_getres
+262     common   clock_nanosleep          sys_clock_nanosleep
+263     common   statfs64                 sys_statfs64
+264     common   fstatfs64                sys_fstatfs64
+265     common   tgkill                   sys_tgkill
+266     common   utimes                   sys_utimes
+267     common   fadvise64_64             sys_fadvise64_64
+268     common   mbind                    sys_mbind
+269     common   get_mempolicy            sys_get_mempolicy
+270     common   set_mempolicy            sys_set_mempolicy
+271     common   mq_open                  sys_mq_open
+272     common   mq_unlink                sys_mq_unlink
+273     common   mq_timedsend             sys_mq_timedsend
+274     common   mq_timedreceive          sys_mq_timedreceive
+275     common   mq_notify                sys_mq_notify
+276     common   mq_getsetattr            sys_mq_getsetattr
+277     common   waitid                   sys_waitid
+279     common   add_key                  sys_add_key
+280     common   request_key              sys_request_key
+281     common   keyctl                   sys_keyctl
+282     common   ioprio_set               sys_ioprio_set
+283     common   ioprio_get               sys_ioprio_get
+284     common   inotify_init             sys_inotify_init
+285     common   inotify_add_watch        sys_inotify_add_watch
+286     common   inotify_rm_watch         sys_inotify_rm_watch
+287     common   migrate_pages            sys_migrate_pages
+288     common   openat                   sys_openat
+289     common   mkdirat                  sys_mkdirat
+290     common   mknodat                  sys_mknodat
+291     common   fchownat                 sys_fchownat
+292     common   futimesat                sys_futimesat
+293     common   fstatat64                sys_fstatat64
+294     common   unlinkat                 sys_unlinkat
+295     common   renameat                 sys_renameat
+296     common   linkat                   sys_linkat
+297     common   symlinkat                sys_symlinkat
+298     common   readlinkat               sys_readlinkat
+299     common   fchmodat                 sys_fchmodat
+300     common   faccessat                sys_faccessat
+301     common   pselect6                 sys_pselect6
+302     common   ppoll                    sys_ppoll
+303     common   unshare                  sys_unshare
+304     common   set_robust_list          sys_set_robust_list
+305     common   get_robust_list          sys_get_robust_list
+306     common   splice                   sys_splice
+307     common   sync_file_range          sys_sync_file_range
+308     common   tee                      sys_tee
+309     common   vmsplice                 sys_vmsplice
+310     common   move_pages               sys_move_pages
+311     common   sched_setaffinity        sys_sched_setaffinity
+312     common   sched_getaffinity        sys_sched_getaffinity
+313     common   kexec_load               sys_kexec_load
+314     common   getcpu                   sys_getcpu
+315     common   epoll_pwait              sys_epoll_pwait
+316     common   utimensat                sys_utimensat
+317     common   signalfd                 sys_signalfd
+318     common   timerfd_create           sys_timerfd_create
+319     common   eventfd                  sys_eventfd
+320     common   fallocate                sys_fallocate
+321     common   timerfd_settime          sys_timerfd_settime
+322     common   timerfd_gettime          sys_timerfd_gettime
+323     common   signalfd4                sys_signalfd4
+324     common   eventfd2                 sys_eventfd2
+325     common   epoll_create1            sys_epoll_create1
+326     common   dup3                     sys_dup3
+327     common   pipe2                    sys_pipe2
+328     common   inotify_init1            sys_inotify_init1
+329     common   preadv                   sys_preadv
+330     common   pwritev                  sys_pwritev
+331     common   rt_tgsigqueueinfo        sys_rt_tgsigqueueinfo
+332     common   perf_event_open          sys_perf_event_open
+333     common   get_thread_area          sys_get_thread_area
+334     common   set_thread_area          sys_set_thread_area
+335     common   atomic_cmpxchg_32        sys_atomic_cmpxchg_32
+336     common   atomic_barrier           sys_atomic_barrier
+337     common   fanotify_init            sys_fanotify_init
+338     common   fanotify_mark            sys_fanotify_mark
+339     common   prlimit64                sys_prlimit64
+340     common   name_to_handle_at        sys_name_to_handle_at
+341     common   open_by_handle_at        sys_open_by_handle_at
+342     common   clock_adjtime            sys_clock_adjtime
+343     common   syncfs                   sys_syncfs
+344     common   setns                    sys_setns
+345     common   process_vm_readv         sys_process_vm_readv
+346     common   process_vm_writev        sys_process_vm_writev
+347     common   kcmp                     sys_kcmp
+348     common   finit_module             sys_finit_module
+349     common   sched_setattr            sys_sched_setattr
+350     common   sched_getattr            sys_sched_getattr
+351     common   renameat2                sys_renameat2
+352     common   getrandom                sys_getrandom
+353     common   memfd_create             sys_memfd_create
+354     common   bpf                      sys_bpf
+355     common   execveat                 sys_execveat
+356     common   socket                   sys_socket
+357     common   socketpair               sys_socketpair
+358     common   bind                     sys_bind
+359     common   connect                  sys_connect
+360     common   listen                   sys_listen
+361     common   accept4                  sys_accept4
+362     common   getsockopt               sys_getsockopt
+363     common   setsockopt               sys_setsockopt
+364     common   getsockname              sys_getsockname
+365     common   getpeername              sys_getpeername
+366     common   sendto                   sys_sendto
+367     common   sendmsg                  sys_sendmsg
+368     common   recvfrom                 sys_recvfrom
+369     common   recvmsg                  sys_recvmsg
+370     common   shutdown                 sys_shutdown
+371     common   recvmmsg                 sys_recvmmsg
+372     common   sendmmsg                 sys_sendmmsg
+373     common   userfaultfd              sys_userfaultfd
+374     common   membarrier               sys_membarrier
+375     common   mlock2                   sys_mlock2
+376     common   copy_file_range          sys_copy_file_range
+377     common   preadv2                  sys_preadv2
+378     common   pwritev2                 sys_pwritev2
+379     common   statx                    sys_statx
diff --git a/arch/m68k/kernel/syscalls/syscallhdr.sh b/arch/m68k/kernel/syscalls/syscallhdr.sh
new file mode 100644
index 0000000..e0e3108
--- /dev/null
+++ b/arch/m68k/kernel/syscalls/syscallhdr.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+in="$1"
+out="$2"
+my_abis=`echo "($3)" | tr ',' '|'`
+prefix="$4"
+offset="$5"
+
+fileguard=_UAPI_ASM_M68K_`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 | (
+    echo "#ifndef ${fileguard}"
+    echo "#define ${fileguard}"
+    echo ""
+
+    nxt=0
+    while read nr abi name entry ; do
+	if [ -z "$offset" ]; then
+	    echo -e "#define __NR_${prefix}${name}\t$nr"
+	else
+	    echo -e "#define __NR_${prefix}${name}\t($offset + $nr)"
+	fi
+	nxt=$nr
+	let nxt=nxt+1
+    done
+
+    echo ""
+    echo "#ifdef __KERNEL__"
+    echo -e "#define __NR_syscalls\t$nxt"
+    echo "#endif"
+    echo ""
+    echo "#endif /* ${fileguard} */"
+) > "$out"
diff --git a/arch/m68k/kernel/syscalls/syscalltbl.sh b/arch/m68k/kernel/syscalls/syscalltbl.sh
new file mode 100644
index 0000000..d2635de
--- /dev/null
+++ b/arch/m68k/kernel/syscalls/syscalltbl.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+in="$1"
+out="$2"
+my_abi="$3"
+offset="$4"
+
+emit() {
+    nxt="$1"
+    nr="$2"
+    entry="$3"
+
+    while [ $nxt -lt $nr ]; do
+	echo "__SYSCALL($nxt, sys_ni_syscall, )"
+	let nxt=nxt+1
+    done
+
+    echo "__SYSCALL($nr, $entry, )"
+}
+
+grep '^[0-9]' "$in" | sort -n | (
+    if [ -z "$offset" ]; then
+	nxt=0
+    else
+	nxt=$offset
+    fi
+
+    while read nr abi name entry ; do
+	emit $nxt $nr $entry
+	nxt=$nr
+        let nxt=nxt+1
+    done
+) > "$out"
-- 
1.9.1


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

* [PATCH v3 4/5] m68k: uapi header and system call table file generation
  2018-10-01 12:37 [PATCH v3 0/5] System call table generation support Firoz Khan
                   ` (2 preceding siblings ...)
  2018-10-01 12:37 ` [PATCH v3 3/5] m68k: add system call table generation support Firoz Khan
@ 2018-10-01 12:37 ` Firoz Khan
  2018-10-01 12:37 ` [PATCH v3 5/5] m68k: add __IGNORE* entries in asm/unistd.h Firoz Khan
  4 siblings, 0 replies; 9+ messages in thread
From: Firoz Khan @ 2018-10-01 12:37 UTC (permalink / raw)
  To: Geert Uytterhoeven, linux-m68k, 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 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
arch/m68k/Makefile and the generated files against the
removed files will be identical.

The generated uapi header file will be included in
uapi/asm/unistd.h and generated system call table support
file will be included by arch/m68k/kernel/syscall_table.S
file.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/m68k/Makefile                  |   3 +
 arch/m68k/include/asm/Kbuild        |   1 +
 arch/m68k/include/uapi/asm/Kbuild   |   1 +
 arch/m68k/include/uapi/asm/unistd.h | 389 +----------------------------------
 arch/m68k/kernel/syscall_table.S    | 399 +-----------------------------------
 5 files changed, 11 insertions(+), 782 deletions(-)

diff --git a/arch/m68k/Makefile b/arch/m68k/Makefile
index 997c9f2..f00ca53 100644
--- a/arch/m68k/Makefile
+++ b/arch/m68k/Makefile
@@ -154,5 +154,8 @@ endif
 archclean:
 	rm -f vmlinux.gz vmlinux.bz2
 
+archheaders:
+	$(Q)$(MAKE) $(build)=arch/m68k/kernel/syscalls all
+
 install:
 	sh $(srctree)/arch/m68k/install.sh $(KERNELRELEASE) vmlinux.gz System.map "$(INSTALL_PATH)"
diff --git a/arch/m68k/include/asm/Kbuild b/arch/m68k/include/asm/Kbuild
index a4b8d33..68501411 100644
--- a/arch/m68k/include/asm/Kbuild
+++ b/arch/m68k/include/asm/Kbuild
@@ -24,3 +24,4 @@ generic-y += topology.h
 generic-y += trace_clock.h
 generic-y += word-at-a-time.h
 generic-y += xor.h
+generic-y += syscall_table.h
\ No newline at end of file
diff --git a/arch/m68k/include/uapi/asm/Kbuild b/arch/m68k/include/uapi/asm/Kbuild
index c2e26a4..6d600e9 100644
--- a/arch/m68k/include/uapi/asm/Kbuild
+++ b/arch/m68k/include/uapi/asm/Kbuild
@@ -21,3 +21,4 @@ generic-y += statfs.h
 generic-y += termbits.h
 generic-y += termios.h
 generic-y += types.h
+generic-y += unistd_32.h
\ No newline at end of file
diff --git a/arch/m68k/include/uapi/asm/unistd.h b/arch/m68k/include/uapi/asm/unistd.h
index ba4176aa..cdbd090 100644
--- a/arch/m68k/include/uapi/asm/unistd.h
+++ b/arch/m68k/include/uapi/asm/unistd.h
@@ -2,393 +2,6 @@
 #ifndef _UAPI_ASM_M68K_UNISTD_H_
 #define _UAPI_ASM_M68K_UNISTD_H_
 
-/*
- * This file contains the system call numbers.
- */
-
-#define __NR_restart_syscall	  0
-#define __NR_exit		  1
-#define __NR_fork		  2
-#define __NR_read		  3
-#define __NR_write		  4
-#define __NR_open		  5
-#define __NR_close		  6
-#define __NR_waitpid		  7
-#define __NR_creat		  8
-#define __NR_link		  9
-#define __NR_unlink		 10
-#define __NR_execve		 11
-#define __NR_chdir		 12
-#define __NR_time		 13
-#define __NR_mknod		 14
-#define __NR_chmod		 15
-#define __NR_chown		 16
-/*#define __NR_break		 17*/
-#define __NR_oldstat		 18
-#define __NR_lseek		 19
-#define __NR_getpid		 20
-#define __NR_mount		 21
-#define __NR_umount		 22
-#define __NR_setuid		 23
-#define __NR_getuid		 24
-#define __NR_stime		 25
-#define __NR_ptrace		 26
-#define __NR_alarm		 27
-#define __NR_oldfstat		 28
-#define __NR_pause		 29
-#define __NR_utime		 30
-/*#define __NR_stty		 31*/
-/*#define __NR_gtty		 32*/
-#define __NR_access		 33
-#define __NR_nice		 34
-/*#define __NR_ftime		 35*/
-#define __NR_sync		 36
-#define __NR_kill		 37
-#define __NR_rename		 38
-#define __NR_mkdir		 39
-#define __NR_rmdir		 40
-#define __NR_dup		 41
-#define __NR_pipe		 42
-#define __NR_times		 43
-/*#define __NR_prof		 44*/
-#define __NR_brk		 45
-#define __NR_setgid		 46
-#define __NR_getgid		 47
-#define __NR_signal		 48
-#define __NR_geteuid		 49
-#define __NR_getegid		 50
-#define __NR_acct		 51
-#define __NR_umount2		 52
-/*#define __NR_lock		 53*/
-#define __NR_ioctl		 54
-#define __NR_fcntl		 55
-/*#define __NR_mpx		 56*/
-#define __NR_setpgid		 57
-/*#define __NR_ulimit		 58*/
-/*#define __NR_oldolduname	 59*/
-#define __NR_umask		 60
-#define __NR_chroot		 61
-#define __NR_ustat		 62
-#define __NR_dup2		 63
-#define __NR_getppid		 64
-#define __NR_getpgrp		 65
-#define __NR_setsid		 66
-#define __NR_sigaction		 67
-#define __NR_sgetmask		 68
-#define __NR_ssetmask		 69
-#define __NR_setreuid		 70
-#define __NR_setregid		 71
-#define __NR_sigsuspend		 72
-#define __NR_sigpending		 73
-#define __NR_sethostname	 74
-#define __NR_setrlimit		 75
-#define __NR_getrlimit		 76
-#define __NR_getrusage		 77
-#define __NR_gettimeofday	 78
-#define __NR_settimeofday	 79
-#define __NR_getgroups		 80
-#define __NR_setgroups		 81
-#define __NR_select		 82
-#define __NR_symlink		 83
-#define __NR_oldlstat		 84
-#define __NR_readlink		 85
-#define __NR_uselib		 86
-#define __NR_swapon		 87
-#define __NR_reboot		 88
-#define __NR_readdir		 89
-#define __NR_mmap		 90
-#define __NR_munmap		 91
-#define __NR_truncate		 92
-#define __NR_ftruncate		 93
-#define __NR_fchmod		 94
-#define __NR_fchown		 95
-#define __NR_getpriority	 96
-#define __NR_setpriority	 97
-/*#define __NR_profil		 98*/
-#define __NR_statfs		 99
-#define __NR_fstatfs		100
-/*#define __NR_ioperm		101*/
-#define __NR_socketcall		102
-#define __NR_syslog		103
-#define __NR_setitimer		104
-#define __NR_getitimer		105
-#define __NR_stat		106
-#define __NR_lstat		107
-#define __NR_fstat		108
-/*#define __NR_olduname		109*/
-/*#define __NR_iopl		110*/ /* not supported */
-#define __NR_vhangup		111
-/*#define __NR_idle		112*/ /* Obsolete */
-/*#define __NR_vm86		113*/ /* not supported */
-#define __NR_wait4		114
-#define __NR_swapoff		115
-#define __NR_sysinfo		116
-#define __NR_ipc		117
-#define __NR_fsync		118
-#define __NR_sigreturn		119
-#define __NR_clone		120
-#define __NR_setdomainname	121
-#define __NR_uname		122
-#define __NR_cacheflush		123
-#define __NR_adjtimex		124
-#define __NR_mprotect		125
-#define __NR_sigprocmask	126
-#define __NR_create_module	127
-#define __NR_init_module	128
-#define __NR_delete_module	129
-#define __NR_get_kernel_syms	130
-#define __NR_quotactl		131
-#define __NR_getpgid		132
-#define __NR_fchdir		133
-#define __NR_bdflush		134
-#define __NR_sysfs		135
-#define __NR_personality	136
-/*#define __NR_afs_syscall	137*/ /* Syscall for Andrew File System */
-#define __NR_setfsuid		138
-#define __NR_setfsgid		139
-#define __NR__llseek		140
-#define __NR_getdents		141
-#define __NR__newselect		142
-#define __NR_flock		143
-#define __NR_msync		144
-#define __NR_readv		145
-#define __NR_writev		146
-#define __NR_getsid		147
-#define __NR_fdatasync		148
-#define __NR__sysctl		149
-#define __NR_mlock		150
-#define __NR_munlock		151
-#define __NR_mlockall		152
-#define __NR_munlockall		153
-#define __NR_sched_setparam		154
-#define __NR_sched_getparam		155
-#define __NR_sched_setscheduler		156
-#define __NR_sched_getscheduler		157
-#define __NR_sched_yield		158
-#define __NR_sched_get_priority_max	159
-#define __NR_sched_get_priority_min	160
-#define __NR_sched_rr_get_interval	161
-#define __NR_nanosleep		162
-#define __NR_mremap		163
-#define __NR_setresuid		164
-#define __NR_getresuid		165
-#define __NR_getpagesize	166
-#define __NR_query_module	167
-#define __NR_poll		168
-#define __NR_nfsservctl		169
-#define __NR_setresgid		170
-#define __NR_getresgid		171
-#define __NR_prctl		172
-#define __NR_rt_sigreturn	173
-#define __NR_rt_sigaction	174
-#define __NR_rt_sigprocmask	175
-#define __NR_rt_sigpending	176
-#define __NR_rt_sigtimedwait	177
-#define __NR_rt_sigqueueinfo	178
-#define __NR_rt_sigsuspend	179
-#define __NR_pread64		180
-#define __NR_pwrite64		181
-#define __NR_lchown		182
-#define __NR_getcwd		183
-#define __NR_capget		184
-#define __NR_capset		185
-#define __NR_sigaltstack	186
-#define __NR_sendfile		187
-#define __NR_getpmsg		188	/* some people actually want streams */
-#define __NR_putpmsg		189	/* some people actually want streams */
-#define __NR_vfork		190
-#define __NR_ugetrlimit		191
-#define __NR_mmap2		192
-#define __NR_truncate64		193
-#define __NR_ftruncate64	194
-#define __NR_stat64		195
-#define __NR_lstat64		196
-#define __NR_fstat64		197
-#define __NR_chown32		198
-#define __NR_getuid32		199
-#define __NR_getgid32		200
-#define __NR_geteuid32		201
-#define __NR_getegid32		202
-#define __NR_setreuid32		203
-#define __NR_setregid32		204
-#define __NR_getgroups32	205
-#define __NR_setgroups32	206
-#define __NR_fchown32		207
-#define __NR_setresuid32	208
-#define __NR_getresuid32	209
-#define __NR_setresgid32	210
-#define __NR_getresgid32	211
-#define __NR_lchown32		212
-#define __NR_setuid32		213
-#define __NR_setgid32		214
-#define __NR_setfsuid32		215
-#define __NR_setfsgid32		216
-#define __NR_pivot_root		217
-/* 218*/
-/* 219*/
-#define __NR_getdents64		220
-#define __NR_gettid		221
-#define __NR_tkill		222
-#define __NR_setxattr		223
-#define __NR_lsetxattr		224
-#define __NR_fsetxattr		225
-#define __NR_getxattr		226
-#define __NR_lgetxattr		227
-#define __NR_fgetxattr		228
-#define __NR_listxattr		229
-#define __NR_llistxattr		230
-#define __NR_flistxattr		231
-#define __NR_removexattr	232
-#define __NR_lremovexattr	233
-#define __NR_fremovexattr	234
-#define __NR_futex		235
-#define __NR_sendfile64		236
-#define __NR_mincore		237
-#define __NR_madvise		238
-#define __NR_fcntl64		239
-#define __NR_readahead		240
-#define __NR_io_setup		241
-#define __NR_io_destroy		242
-#define __NR_io_getevents	243
-#define __NR_io_submit		244
-#define __NR_io_cancel		245
-#define __NR_fadvise64		246
-#define __NR_exit_group		247
-#define __NR_lookup_dcookie	248
-#define __NR_epoll_create	249
-#define __NR_epoll_ctl		250
-#define __NR_epoll_wait		251
-#define __NR_remap_file_pages	252
-#define __NR_set_tid_address	253
-#define __NR_timer_create	254
-#define __NR_timer_settime	255
-#define __NR_timer_gettime	256
-#define __NR_timer_getoverrun	257
-#define __NR_timer_delete	258
-#define __NR_clock_settime	259
-#define __NR_clock_gettime	260
-#define __NR_clock_getres	261
-#define __NR_clock_nanosleep	262
-#define __NR_statfs64		263
-#define __NR_fstatfs64		264
-#define __NR_tgkill		265
-#define __NR_utimes		266
-#define __NR_fadvise64_64	267
-#define __NR_mbind		268
-#define __NR_get_mempolicy	269
-#define __NR_set_mempolicy	270
-#define __NR_mq_open		271
-#define __NR_mq_unlink		272
-#define __NR_mq_timedsend	273
-#define __NR_mq_timedreceive	274
-#define __NR_mq_notify		275
-#define __NR_mq_getsetattr	276
-#define __NR_waitid		277
-/*#define __NR_vserver		278*/
-#define __NR_add_key		279
-#define __NR_request_key	280
-#define __NR_keyctl		281
-#define __NR_ioprio_set		282
-#define __NR_ioprio_get		283
-#define __NR_inotify_init	284
-#define __NR_inotify_add_watch	285
-#define __NR_inotify_rm_watch	286
-#define __NR_migrate_pages	287
-#define __NR_openat		288
-#define __NR_mkdirat		289
-#define __NR_mknodat		290
-#define __NR_fchownat		291
-#define __NR_futimesat		292
-#define __NR_fstatat64		293
-#define __NR_unlinkat		294
-#define __NR_renameat		295
-#define __NR_linkat		296
-#define __NR_symlinkat		297
-#define __NR_readlinkat		298
-#define __NR_fchmodat		299
-#define __NR_faccessat		300
-#define __NR_pselect6		301
-#define __NR_ppoll		302
-#define __NR_unshare		303
-#define __NR_set_robust_list	304
-#define __NR_get_robust_list	305
-#define __NR_splice		306
-#define __NR_sync_file_range	307
-#define __NR_tee		308
-#define __NR_vmsplice		309
-#define __NR_move_pages		310
-#define __NR_sched_setaffinity	311
-#define __NR_sched_getaffinity	312
-#define __NR_kexec_load		313
-#define __NR_getcpu		314
-#define __NR_epoll_pwait	315
-#define __NR_utimensat		316
-#define __NR_signalfd		317
-#define __NR_timerfd_create	318
-#define __NR_eventfd		319
-#define __NR_fallocate		320
-#define __NR_timerfd_settime	321
-#define __NR_timerfd_gettime	322
-#define __NR_signalfd4		323
-#define __NR_eventfd2		324
-#define __NR_epoll_create1	325
-#define __NR_dup3		326
-#define __NR_pipe2		327
-#define __NR_inotify_init1	328
-#define __NR_preadv		329
-#define __NR_pwritev		330
-#define __NR_rt_tgsigqueueinfo	331
-#define __NR_perf_event_open	332
-#define __NR_get_thread_area	333
-#define __NR_set_thread_area	334
-#define __NR_atomic_cmpxchg_32	335
-#define __NR_atomic_barrier	336
-#define __NR_fanotify_init	337
-#define __NR_fanotify_mark	338
-#define __NR_prlimit64		339
-#define __NR_name_to_handle_at	340
-#define __NR_open_by_handle_at	341
-#define __NR_clock_adjtime	342
-#define __NR_syncfs		343
-#define __NR_setns		344
-#define __NR_process_vm_readv	345
-#define __NR_process_vm_writev	346
-#define __NR_kcmp		347
-#define __NR_finit_module	348
-#define __NR_sched_setattr	349
-#define __NR_sched_getattr	350
-#define __NR_renameat2		351
-#define __NR_getrandom		352
-#define __NR_memfd_create	353
-#define __NR_bpf		354
-#define __NR_execveat		355
-#define __NR_socket		356
-#define __NR_socketpair		357
-#define __NR_bind		358
-#define __NR_connect		359
-#define __NR_listen		360
-#define __NR_accept4		361
-#define __NR_getsockopt		362
-#define __NR_setsockopt		363
-#define __NR_getsockname	364
-#define __NR_getpeername	365
-#define __NR_sendto		366
-#define __NR_sendmsg		367
-#define __NR_recvfrom		368
-#define __NR_recvmsg		369
-#define __NR_shutdown		370
-#define __NR_recvmmsg		371
-#define __NR_sendmmsg		372
-#define __NR_userfaultfd	373
-#define __NR_membarrier		374
-#define __NR_mlock2		375
-#define __NR_copy_file_range	376
-#define __NR_preadv2		377
-#define __NR_pwritev2		378
-#define __NR_statx		379
-
-#ifdef __KERNEL__
-#define __NR_syscalls		380
-#endif
+#include <asm/unistd_32.h>
 
 #endif /* _UAPI_ASM_M68K_UNISTD_H_ */
diff --git a/arch/m68k/kernel/syscall_table.S b/arch/m68k/kernel/syscall_table.S
index 2c8402e..56e9d03 100644
--- a/arch/m68k/kernel/syscall_table.S
+++ b/arch/m68k/kernel/syscall_table.S
@@ -1,403 +1,14 @@
 /* SPDX-License-Identifier: GPL-2.0 */
-/*
- *  Copyright (C) 2002, Greg Ungerer (gerg@snapgear.com)
- *
- *  Based on older entry.S files, the following copyrights apply:
- *
- *  Copyright (C) 1998  D. Jeff Dionne <jeff@lineo.ca>,
- *                      Kenneth Albanowski <kjahds@kjahds.com>,
- *  Copyright (C) 2000  Lineo Inc. (www.lineo.com) 
- *  Copyright (C) 1991, 1992  Linus Torvalds
- *
- *  Linux/m68k support by Hamish Macdonald
- */
 
 #include <linux/linkage.h>
 
 #ifndef CONFIG_MMU
-#define sys_mmap2		sys_mmap_pgoff
+#define sys_mmap2 sys_mmap_pgoff
 #endif
 
-.section .rodata
+#define __SYSCALL(nr, entry, nargs) .long entry
+	.section .rodata
 ALIGN
 ENTRY(sys_call_table)
-	.long sys_restart_syscall	/* 0 - old "setup()" system call, used for restarting */
-	.long sys_exit
-	.long __sys_fork
-	.long sys_read
-	.long sys_write
-	.long sys_open			/* 5 */
-	.long sys_close
-	.long sys_waitpid
-	.long sys_creat
-	.long sys_link
-	.long sys_unlink		/* 10 */
-	.long sys_execve
-	.long sys_chdir
-	.long sys_time
-	.long sys_mknod
-	.long sys_chmod			/* 15 */
-	.long sys_chown16
-	.long sys_ni_syscall		/* old break syscall holder */
-	.long sys_stat
-	.long sys_lseek
-	.long sys_getpid		/* 20 */
-	.long sys_mount
-	.long sys_oldumount
-	.long sys_setuid16
-	.long sys_getuid16
-	.long sys_stime			/* 25 */
-	.long sys_ptrace
-	.long sys_alarm
-	.long sys_fstat
-	.long sys_pause
-	.long sys_utime			/* 30 */
-	.long sys_ni_syscall		/* old stty syscall holder */
-	.long sys_ni_syscall		/* old gtty syscall holder */
-	.long sys_access
-	.long sys_nice
-	.long sys_ni_syscall		/* 35 - old ftime syscall holder */
-	.long sys_sync
-	.long sys_kill
-	.long sys_rename
-	.long sys_mkdir
-	.long sys_rmdir			/* 40 */
-	.long sys_dup
-	.long sys_pipe
-	.long sys_times
-	.long sys_ni_syscall		/* old prof syscall holder */
-	.long sys_brk			/* 45 */
-	.long sys_setgid16
-	.long sys_getgid16
-	.long sys_signal
-	.long sys_geteuid16
-	.long sys_getegid16		/* 50 */
-	.long sys_acct
-	.long sys_umount		/* recycled never used phys() */
-	.long sys_ni_syscall		/* old lock syscall holder */
-	.long sys_ioctl
-	.long sys_fcntl			/* 55 */
-	.long sys_ni_syscall		/* old mpx syscall holder */
-	.long sys_setpgid
-	.long sys_ni_syscall		/* old ulimit syscall holder */
-	.long sys_ni_syscall
-	.long sys_umask			/* 60 */
-	.long sys_chroot
-	.long sys_ustat
-	.long sys_dup2
-	.long sys_getppid
-	.long sys_getpgrp		/* 65 */
-	.long sys_setsid
-	.long sys_sigaction
-	.long sys_sgetmask
-	.long sys_ssetmask
-	.long sys_setreuid16		/* 70 */
-	.long sys_setregid16
-	.long sys_sigsuspend
-	.long sys_sigpending
-	.long sys_sethostname
-	.long sys_setrlimit		/* 75 */
-	.long sys_old_getrlimit
-	.long sys_getrusage
-	.long sys_gettimeofday
-	.long sys_settimeofday
-	.long sys_getgroups16		/* 80 */
-	.long sys_setgroups16
-	.long sys_old_select
-	.long sys_symlink
-	.long sys_lstat
-	.long sys_readlink		/* 85 */
-	.long sys_uselib
-	.long sys_swapon
-	.long sys_reboot
-	.long sys_old_readdir
-	.long sys_old_mmap		/* 90 */
-	.long sys_munmap
-	.long sys_truncate
-	.long sys_ftruncate
-	.long sys_fchmod
-	.long sys_fchown16		/* 95 */
-	.long sys_getpriority
-	.long sys_setpriority
-	.long sys_ni_syscall		/* old profil syscall holder */
-	.long sys_statfs
-	.long sys_fstatfs		/* 100 */
-	.long sys_ni_syscall		/* ioperm for i386 */
-	.long sys_socketcall
-	.long sys_syslog
-	.long sys_setitimer
-	.long sys_getitimer		/* 105 */
-	.long sys_newstat
-	.long sys_newlstat
-	.long sys_newfstat
-	.long sys_ni_syscall
-	.long sys_ni_syscall		/* 110 - iopl for i386 */
-	.long sys_vhangup
-	.long sys_ni_syscall		/* obsolete idle() syscall */
-	.long sys_ni_syscall		/* vm86old for i386 */
-	.long sys_wait4
-	.long sys_swapoff		/* 115 */
-	.long sys_sysinfo
-	.long sys_ipc
-	.long sys_fsync
-	.long sys_sigreturn
-	.long __sys_clone		/* 120 */
-	.long sys_setdomainname
-	.long sys_newuname
-	.long sys_cacheflush		/* modify_ldt for i386 */
-	.long sys_adjtimex
-	.long sys_mprotect		/* 125 */
-	.long sys_sigprocmask
-	.long sys_ni_syscall		/* old "create_module" */
-	.long sys_init_module
-	.long sys_delete_module
-	.long sys_ni_syscall		/* 130 - old "get_kernel_syms" */
-	.long sys_quotactl
-	.long sys_getpgid
-	.long sys_fchdir
-	.long sys_bdflush
-	.long sys_sysfs			/* 135 */
-	.long sys_personality
-	.long sys_ni_syscall		/* for afs_syscall */
-	.long sys_setfsuid16
-	.long sys_setfsgid16
-	.long sys_llseek		/* 140 */
-	.long sys_getdents
-	.long sys_select
-	.long sys_flock
-	.long sys_msync
-	.long sys_readv			/* 145 */
-	.long sys_writev
-	.long sys_getsid
-	.long sys_fdatasync
-	.long sys_sysctl
-	.long sys_mlock			/* 150 */
-	.long sys_munlock
-	.long sys_mlockall
-	.long sys_munlockall
-	.long sys_sched_setparam
-	.long sys_sched_getparam	/* 155 */
-	.long sys_sched_setscheduler
-	.long sys_sched_getscheduler
-	.long sys_sched_yield
-	.long sys_sched_get_priority_max
-	.long sys_sched_get_priority_min  /* 160 */
-	.long sys_sched_rr_get_interval
-	.long sys_nanosleep
-	.long sys_mremap
-	.long sys_setresuid16
-	.long sys_getresuid16		/* 165 */
-	.long sys_getpagesize
-	.long sys_ni_syscall		/* old "query_module" */
-	.long sys_poll
-	.long sys_ni_syscall		/* old nfsservctl */
-	.long sys_setresgid16		/* 170 */
-	.long sys_getresgid16
-	.long sys_prctl
-	.long sys_rt_sigreturn
-	.long sys_rt_sigaction
-	.long sys_rt_sigprocmask	/* 175 */
-	.long sys_rt_sigpending
-	.long sys_rt_sigtimedwait
-	.long sys_rt_sigqueueinfo
-	.long sys_rt_sigsuspend
-	.long sys_pread64		/* 180 */
-	.long sys_pwrite64
-	.long sys_lchown16
-	.long sys_getcwd
-	.long sys_capget
-	.long sys_capset		/* 185 */
-	.long sys_sigaltstack
-	.long sys_sendfile
-	.long sys_ni_syscall		/* streams1 */
-	.long sys_ni_syscall		/* streams2 */
-	.long __sys_vfork		/* 190 */
-	.long sys_getrlimit
-	.long sys_mmap2
-	.long sys_truncate64
-	.long sys_ftruncate64
-	.long sys_stat64		/* 195 */
-	.long sys_lstat64
-	.long sys_fstat64
-	.long sys_chown
-	.long sys_getuid
-	.long sys_getgid		/* 200 */
-	.long sys_geteuid
-	.long sys_getegid
-	.long sys_setreuid
-	.long sys_setregid
-	.long sys_getgroups		/* 205 */
-	.long sys_setgroups
-	.long sys_fchown
-	.long sys_setresuid
-	.long sys_getresuid
-	.long sys_setresgid		/* 210 */
-	.long sys_getresgid
-	.long sys_lchown
-	.long sys_setuid
-	.long sys_setgid
-	.long sys_setfsuid		/* 215 */
-	.long sys_setfsgid
-	.long sys_pivot_root
-	.long sys_ni_syscall
-	.long sys_ni_syscall
-	.long sys_getdents64		/* 220 */
-	.long sys_gettid
-	.long sys_tkill
-	.long sys_setxattr
-	.long sys_lsetxattr
-	.long sys_fsetxattr		/* 225 */
-	.long sys_getxattr
-	.long sys_lgetxattr
-	.long sys_fgetxattr
-	.long sys_listxattr
-	.long sys_llistxattr		/* 230 */
-	.long sys_flistxattr
-	.long sys_removexattr
-	.long sys_lremovexattr
-	.long sys_fremovexattr
-	.long sys_futex			/* 235 */
-	.long sys_sendfile64
-	.long sys_mincore
-	.long sys_madvise
-	.long sys_fcntl64
-	.long sys_readahead		/* 240 */
-	.long sys_io_setup
-	.long sys_io_destroy
-	.long sys_io_getevents
-	.long sys_io_submit
-	.long sys_io_cancel		/* 245 */
-	.long sys_fadvise64
-	.long sys_exit_group
-	.long sys_lookup_dcookie
-	.long sys_epoll_create
-	.long sys_epoll_ctl		/* 250 */
-	.long sys_epoll_wait
-	.long sys_remap_file_pages
-	.long sys_set_tid_address
-	.long sys_timer_create
-	.long sys_timer_settime		/* 255 */
-	.long sys_timer_gettime
-	.long sys_timer_getoverrun
-	.long sys_timer_delete
-	.long sys_clock_settime
-	.long sys_clock_gettime		/* 260 */
-	.long sys_clock_getres
-	.long sys_clock_nanosleep
-	.long sys_statfs64
-	.long sys_fstatfs64
-	.long sys_tgkill		/* 265 */
-	.long sys_utimes
-	.long sys_fadvise64_64
-	.long sys_mbind
-	.long sys_get_mempolicy
-	.long sys_set_mempolicy		/* 270 */
-	.long sys_mq_open
-	.long sys_mq_unlink
-	.long sys_mq_timedsend
-	.long sys_mq_timedreceive
-	.long sys_mq_notify		/* 275 */
-	.long sys_mq_getsetattr
-	.long sys_waitid
-	.long sys_ni_syscall		/* for sys_vserver */
-	.long sys_add_key
-	.long sys_request_key		/* 280 */
-	.long sys_keyctl
-	.long sys_ioprio_set
-	.long sys_ioprio_get
-	.long sys_inotify_init
-	.long sys_inotify_add_watch	/* 285 */
-	.long sys_inotify_rm_watch
-	.long sys_migrate_pages
-	.long sys_openat
-	.long sys_mkdirat
-	.long sys_mknodat		/* 290 */
-	.long sys_fchownat
-	.long sys_futimesat
-	.long sys_fstatat64
-	.long sys_unlinkat
-	.long sys_renameat		/* 295 */
-	.long sys_linkat
-	.long sys_symlinkat
-	.long sys_readlinkat
-	.long sys_fchmodat
-	.long sys_faccessat		/* 300 */
-	.long sys_pselect6
-	.long sys_ppoll
-	.long sys_unshare
-	.long sys_set_robust_list
-	.long sys_get_robust_list	/* 305 */
-	.long sys_splice
-	.long sys_sync_file_range
-	.long sys_tee
-	.long sys_vmsplice
-	.long sys_move_pages		/* 310 */
-	.long sys_sched_setaffinity
-	.long sys_sched_getaffinity
-	.long sys_kexec_load
-	.long sys_getcpu
-	.long sys_epoll_pwait		/* 315 */
-	.long sys_utimensat
-	.long sys_signalfd
-	.long sys_timerfd_create
-	.long sys_eventfd
-	.long sys_fallocate		/* 320 */
-	.long sys_timerfd_settime
-	.long sys_timerfd_gettime
-	.long sys_signalfd4
-	.long sys_eventfd2
-	.long sys_epoll_create1		/* 325 */
-	.long sys_dup3
-	.long sys_pipe2
-	.long sys_inotify_init1
-	.long sys_preadv
-	.long sys_pwritev		/* 330 */
-	.long sys_rt_tgsigqueueinfo
-	.long sys_perf_event_open
-	.long sys_get_thread_area
-	.long sys_set_thread_area
-	.long sys_atomic_cmpxchg_32	/* 335 */
-	.long sys_atomic_barrier
-	.long sys_fanotify_init
-	.long sys_fanotify_mark
-	.long sys_prlimit64
-	.long sys_name_to_handle_at	/* 340 */
-	.long sys_open_by_handle_at
-	.long sys_clock_adjtime
-	.long sys_syncfs
-	.long sys_setns
-	.long sys_process_vm_readv	/* 345 */
-	.long sys_process_vm_writev
-	.long sys_kcmp
-	.long sys_finit_module
-	.long sys_sched_setattr
-	.long sys_sched_getattr		/* 350 */
-	.long sys_renameat2
-	.long sys_getrandom
-	.long sys_memfd_create
-	.long sys_bpf
-	.long sys_execveat		/* 355 */
-	.long sys_socket
-	.long sys_socketpair
-	.long sys_bind
-	.long sys_connect
-	.long sys_listen		/* 360 */
-	.long sys_accept4
-	.long sys_getsockopt
-	.long sys_setsockopt
-	.long sys_getsockname
-	.long sys_getpeername		/* 365 */
-	.long sys_sendto
-	.long sys_sendmsg
-	.long sys_recvfrom
-	.long sys_recvmsg
-	.long sys_shutdown		/* 370 */
-	.long sys_recvmmsg
-	.long sys_sendmmsg
-	.long sys_userfaultfd
-	.long sys_membarrier
-	.long sys_mlock2		/* 375 */
-	.long sys_copy_file_range
-	.long sys_preadv2
-	.long sys_pwritev2
-	.long sys_statx
+#include <asm/syscall_table.h>
+#undef __SYSCALL
-- 
1.9.1


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

* [PATCH v3 5/5] m68k: add __IGNORE* entries in asm/unistd.h
  2018-10-01 12:37 [PATCH v3 0/5] System call table generation support Firoz Khan
                   ` (3 preceding siblings ...)
  2018-10-01 12:37 ` [PATCH v3 4/5] m68k: uapi header and system call table file generation Firoz Khan
@ 2018-10-01 12:37 ` Firoz Khan
  2018-10-01 12:51   ` Arnd Bergmann
  4 siblings, 1 reply; 9+ messages in thread
From: Firoz Khan @ 2018-10-01 12:37 UTC (permalink / raw)
  To: Geert Uytterhoeven, linux-m68k, Greg Kroah-Hartman,
	Philippe Ombredanne, Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

Add __IGNORE* entries for seccomp, pkey_mprotect, pkey_
alloc, pkey_free, io_pgetevents and rseq in the file
asm/unistd.h as it is correct to keep __IGNORE* entry in
non uapi header asm/unistd.h while uapi/asm/unistd.h must
hold information only useful for user space applications.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/m68k/include/asm/unistd.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/m68k/include/asm/unistd.h b/arch/m68k/include/asm/unistd.h
index 5072e94..cc5f640 100644
--- a/arch/m68k/include/asm/unistd.h
+++ b/arch/m68k/include/asm/unistd.h
@@ -31,4 +31,11 @@
 #define __ARCH_WANT_SYS_FORK
 #define __ARCH_WANT_SYS_VFORK
 
+#define __IGNORE_seccomp
+#define __IGNORE_pkey_mprotect
+#define __IGNORE_pkey_alloc
+#define __IGNORE_pkey_free
+#define __IGNORE_io_pgetevents
+#define __IGNORE_rseq
+
 #endif /* _ASM_M68K_UNISTD_H_ */
-- 
1.9.1


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

* Re: [PATCH v3 5/5] m68k: add __IGNORE* entries in asm/unistd.h
  2018-10-01 12:37 ` [PATCH v3 5/5] m68k: add __IGNORE* entries in asm/unistd.h Firoz Khan
@ 2018-10-01 12:51   ` Arnd Bergmann
  0 siblings, 0 replies; 9+ messages in thread
From: Arnd Bergmann @ 2018-10-01 12:51 UTC (permalink / raw)
  To: Firoz Khan
  Cc: Geert Uytterhoeven, linux-m68k, gregkh, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart, y2038 Mailman List,
	Linux Kernel Mailing List, linux-arch, Deepa Dinamani,
	Marcin Juszkiewicz

On Mon, Oct 1, 2018 at 2:39 PM Firoz Khan <firoz.khan@linaro.org> wrote:
>
> Add __IGNORE* entries for seccomp, pkey_mprotect, pkey_
> alloc, pkey_free, io_pgetevents and rseq in the file
> asm/unistd.h as it is correct to keep __IGNORE* entry in
> non uapi header asm/unistd.h while uapi/asm/unistd.h must
> hold information only useful for user space applications.
>
> Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
> ---
>  arch/m68k/include/asm/unistd.h | 7 +++++++
>  1 file changed, 7 insertions(+)

I think this one needs to be dropped, as I commented on a similar patch for
another architecture (I forget which one). We really should implemente all
the syscalls below, with the possible exception of the pkey calls.

Note that we even list pkey_* in architectures that don't support the feature.
See also the commit text for a60f7b69d92c ("generic syscalls: Wire up
memory protection keys syscalls")

     Arnd

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

* Re: [PATCH v3 3/5] m68k: add system call table generation support
  2018-10-01 12:37 ` [PATCH v3 3/5] m68k: add system call table generation support Firoz Khan
@ 2018-10-01 22:52   ` Finn Thain
  2018-10-15  4:12     ` Firoz Khan
  0 siblings, 1 reply; 9+ messages in thread
From: Finn Thain @ 2018-10-01 22:52 UTC (permalink / raw)
  To: Firoz Khan
  Cc: Geert Uytterhoeven, linux-m68k, Greg Kroah-Hartman,
	Philippe Ombredanne, Thomas Gleixner, Kate Stewart, y2038,
	linux-kernel, linux-arch, arnd, deepa.kernel, marcin.juszkiewicz

On Mon, 1 Oct 2018, Firoz Khan wrote:

> --- /dev/null
> +++ b/arch/m68k/kernel/syscalls/syscallhdr.sh
> @@ -0,0 +1,35 @@
> +#!/bin/sh

That's not accurate. These are bash scripts, not Bourne shell.

If you run 'checkbashisms', you'll see that a few small changes are needed 
in order to gain standards compliance and portability.

Some untested suggestions:

diff --git a/arch/m68k/kernel/syscalls/syscallhdr.sh b/arch/m68k/kernel/syscalls/syscallhdr.sh
index e0e3108cfc7f..9811f82848e6 100644
--- a/arch/m68k/kernel/syscalls/syscallhdr.sh
+++ b/arch/m68k/kernel/syscalls/syscallhdr.sh
@@ -18,17 +18,17 @@ grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
     nxt=0
     while read nr abi name entry ; do
 	if [ -z "$offset" ]; then
-	    echo -e "#define __NR_${prefix}${name}\t$nr"
+	    echo "#define __NR_${prefix}${name}	$nr"
 	else
-	    echo -e "#define __NR_${prefix}${name}\t($offset + $nr)"
+	    echo "#define __NR_${prefix}${name}	($offset + $nr)"
 	fi
 	nxt=$nr
-	let nxt=nxt+1
+	nxt=$((nxt+1))
     done
 
     echo ""
     echo "#ifdef __KERNEL__"
-    echo -e "#define __NR_syscalls\t$nxt"
+    echo "#define __NR_syscalls	$nxt"
     echo "#endif"
     echo ""
     echo "#endif /* ${fileguard} */"
diff --git a/arch/m68k/kernel/syscalls/syscalltbl.sh b/arch/m68k/kernel/syscalls/syscalltbl.sh
index d2635dea4e96..89ab047097ce 100644
--- a/arch/m68k/kernel/syscalls/syscalltbl.sh
+++ b/arch/m68k/kernel/syscalls/syscalltbl.sh
@@ -13,7 +13,7 @@ emit() {
 
     while [ $nxt -lt $nr ]; do
 	echo "__SYSCALL($nxt, sys_ni_syscall, )"
-	let nxt=nxt+1
+	nxt=$((nxt+1))
     done
 
     echo "__SYSCALL($nr, $entry, )"
@@ -29,6 +29,6 @@ grep '^[0-9]' "$in" | sort -n | (
     while read nr abi name entry ; do
 	emit $nxt $nr $entry
 	nxt=$nr
-        let nxt=nxt+1
+        nxt=$((nxt+1))
     done
 ) > "$out"

-- 

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

* Re: [PATCH v3 3/5] m68k: add system call table generation support
  2018-10-01 22:52   ` Finn Thain
@ 2018-10-15  4:12     ` Firoz Khan
  0 siblings, 0 replies; 9+ messages in thread
From: Firoz Khan @ 2018-10-15  4:12 UTC (permalink / raw)
  To: fthain
  Cc: Geert Uytterhoeven, linux-m68k, 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 Finn,

On Tue, 2 Oct 2018 at 04:22, Finn Thain <fthain@telegraphics.com.au> wrote:
>
> On Mon, 1 Oct 2018, Firoz Khan wrote:
>
> > --- /dev/null
> > +++ b/arch/m68k/kernel/syscalls/syscallhdr.sh
> > @@ -0,0 +1,35 @@
> > +#!/bin/sh
>
> That's not accurate. These are bash scripts, not Bourne shell.
>
> If you run 'checkbashisms', you'll see that a few small changes are needed
> in order to gain standards compliance and portability.

Sure.

>
> Some untested suggestions:
>
> diff --git a/arch/m68k/kernel/syscalls/syscallhdr.sh b/arch/m68k/kernel/syscalls/syscallhdr.sh
> index e0e3108cfc7f..9811f82848e6 100644
> --- a/arch/m68k/kernel/syscalls/syscallhdr.sh
> +++ b/arch/m68k/kernel/syscalls/syscallhdr.sh
> @@ -18,17 +18,17 @@ grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
>      nxt=0
>      while read nr abi name entry ; do
>         if [ -z "$offset" ]; then
> -           echo -e "#define __NR_${prefix}${name}\t$nr"
> +           echo "#define __NR_${prefix}${name} $nr"
>         else
> -           echo -e "#define __NR_${prefix}${name}\t($offset + $nr)"
> +           echo "#define __NR_${prefix}${name} ($offset + $nr)"
>         fi
>         nxt=$nr
> -       let nxt=nxt+1
> +       nxt=$((nxt+1))
>      done
>
>      echo ""
>      echo "#ifdef __KERNEL__"
> -    echo -e "#define __NR_syscalls\t$nxt"
> +    echo "#define __NR_syscalls        $nxt"
>      echo "#endif"
>      echo ""
>      echo "#endif /* ${fileguard} */"
> diff --git a/arch/m68k/kernel/syscalls/syscalltbl.sh b/arch/m68k/kernel/syscalls/syscalltbl.sh
> index d2635dea4e96..89ab047097ce 100644
> --- a/arch/m68k/kernel/syscalls/syscalltbl.sh
> +++ b/arch/m68k/kernel/syscalls/syscalltbl.sh
> @@ -13,7 +13,7 @@ emit() {
>
>      while [ $nxt -lt $nr ]; do
>         echo "__SYSCALL($nxt, sys_ni_syscall, )"
> -       let nxt=nxt+1
> +       nxt=$((nxt+1))
>      done
>
>      echo "__SYSCALL($nr, $entry, )"
> @@ -29,6 +29,6 @@ grep '^[0-9]' "$in" | sort -n | (
>      while read nr abi name entry ; do
>         emit $nxt $nr $entry
>         nxt=$nr
> -        let nxt=nxt+1
> +        nxt=$((nxt+1))
>      done
>  ) > "$out"

Thanks for your comments! I'll have a look into it.

Firoz
>
> --

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

end of thread, other threads:[~2018-10-15  4:12 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-01 12:37 [PATCH v3 0/5] System call table generation support Firoz Khan
2018-10-01 12:37 ` [PATCH v3 1/5] m68k: rename system call table file name Firoz Khan
2018-10-01 12:37 ` [PATCH v3 2/5] m68k: replace NR_syscalls macro from asm/unistd.h Firoz Khan
2018-10-01 12:37 ` [PATCH v3 3/5] m68k: add system call table generation support Firoz Khan
2018-10-01 22:52   ` Finn Thain
2018-10-15  4:12     ` Firoz Khan
2018-10-01 12:37 ` [PATCH v3 4/5] m68k: uapi header and system call table file generation Firoz Khan
2018-10-01 12:37 ` [PATCH v3 5/5] m68k: add __IGNORE* entries in asm/unistd.h Firoz Khan
2018-10-01 12:51   ` Arnd Bergmann

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