linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/3] microblaze: system call table generation support
@ 2018-10-26  5:09 Firoz Khan
  2018-10-26  5:09 ` [PATCH v3 1/3] microblaze: move __NR_syscalls macro from asm/unistd.h Firoz Khan
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Firoz Khan @ 2018-10-26  5:09 UTC (permalink / raw)
  To: Michal Simek, 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, we can easily add/modify/delete
system call table support by changing entry in syscall.tbl file 
instead of manually changing many files. The other goal is to unify 
the system call table generation support implementation across all 
the architectures. 

The system call tables are in different format in all architecture. 
It will be difficult to manually add, modify or delete the system 
calls in the respective files manually. To make it easy by keeping
a script and which'll generate uapi header file and syscall table 
file.

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.

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, m68k, mips, 
parisc, powerpc, sh, sparc, and xtensa. Below mentioned git repos-
itory contains more details.
Git repo:- https://github.com/frzkhn/system_call_table_generator/

Finally, this is the ground work to solve the Y2038 issue. We need 
to add two dozen of system calls to solve Y2038 issue. So this patch
series will help to add new system calls easily by adding new entry 
in the syscall.tbl.

Firoz Khan (3):
  microblaze: move __NR_syscalls macro from asm/unistd.h
  microblaze: add system call table generation support
  microblaze: generate uapi header and system call table files

 arch/microblaze/Makefile                      |   3 +
 arch/microblaze/include/asm/Kbuild            |   1 +
 arch/microblaze/include/asm/unistd.h          |   2 -
 arch/microblaze/include/uapi/asm/Kbuild       |   1 +
 arch/microblaze/include/uapi/asm/unistd.h     | 407 +------------------------
 arch/microblaze/kernel/syscall_table.S        | 406 +------------------------
 arch/microblaze/kernel/syscalls/Makefile      |  38 +++
 arch/microblaze/kernel/syscalls/syscall.tbl   | 410 ++++++++++++++++++++++++++
 arch/microblaze/kernel/syscalls/syscallhdr.sh |  36 +++
 arch/microblaze/kernel/syscalls/syscalltbl.sh |  32 ++
 10 files changed, 526 insertions(+), 810 deletions(-)
 create mode 100644 arch/microblaze/kernel/syscalls/Makefile
 create mode 100644 arch/microblaze/kernel/syscalls/syscall.tbl
 create mode 100644 arch/microblaze/kernel/syscalls/syscallhdr.sh
 create mode 100644 arch/microblaze/kernel/syscalls/syscalltbl.sh

-- 
1.9.1


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

* [PATCH v3 1/3] microblaze: move __NR_syscalls macro from asm/unistd.h
  2018-10-26  5:09 [PATCH v3 0/3] microblaze: system call table generation support Firoz Khan
@ 2018-10-26  5:09 ` Firoz Khan
  2018-10-26  5:09 ` [PATCH v3 2/3] microblaze: add system call table generation support Firoz Khan
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 9+ messages in thread
From: Firoz Khan @ 2018-10-26  5:09 UTC (permalink / raw)
  To: Michal Simek, 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 microblaze architecture. We have to change the value of
__NR_syscalls, if we add or delete a system call.

One of the 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 total number of system
calls information. So we have two option to update __NR-
_syscalls value.

1. Update __NR_syscalls in asm/unistd.h manually by count-
   ing the no.of system calls. No need to update NR_sys-
   calls until we either add a new system call or delete
   existing system call.

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

The 2nd option will be the recommended one. For that, I
moved the __NR_syscalls macro from asm/unistd.h to uapi-
/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. We also need to enclose
this macro with #ifdef __KERNEL__ to avoid side effects.

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

diff --git a/arch/microblaze/include/asm/unistd.h b/arch/microblaze/include/asm/unistd.h
index a62d094..e19550f 100644
--- a/arch/microblaze/include/asm/unistd.h
+++ b/arch/microblaze/include/asm/unistd.h
@@ -38,6 +38,4 @@
 
 #endif /* __ASSEMBLY__ */
 
-#define __NR_syscalls         401
-
 #endif /* _ASM_MICROBLAZE_UNISTD_H */
diff --git a/arch/microblaze/include/uapi/asm/unistd.h b/arch/microblaze/include/uapi/asm/unistd.h
index 7a9f16a..ed9c6f5 100644
--- a/arch/microblaze/include/uapi/asm/unistd.h
+++ b/arch/microblaze/include/uapi/asm/unistd.h
@@ -418,4 +418,8 @@
 #define __NR_io_pgetevents	399
 #define __NR_rseq		400
 
+#ifdef __KERNEL__
+#define __NR_syscalls         401
+#endif
+
 #endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */
-- 
1.9.1


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

* [PATCH v3 2/3] microblaze: add system call table generation support
  2018-10-26  5:09 [PATCH v3 0/3] microblaze: system call table generation support Firoz Khan
  2018-10-26  5:09 ` [PATCH v3 1/3] microblaze: move __NR_syscalls macro from asm/unistd.h Firoz Khan
@ 2018-10-26  5:09 ` Firoz Khan
  2018-10-26  5:09 ` [PATCH v3 3/3] microblaze: generate uapi header and system call table files Firoz Khan
  2018-11-05  8:18 ` [PATCH v3 0/3] microblaze: system call table generation support Michal Simek
  3 siblings, 0 replies; 9+ messages in thread
From: Firoz Khan @ 2018-10-26  5:09 UTC (permalink / raw)
  To: Michal Simek, 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,
modify or delete the syscall table entries in the res-
pective files. To make it easy by keeping a script and
which will generate the uapi header and syscall table 
file. This change will also help to unify the implemen-
tation across all architectures.

The system call table generation script is added in
kernel/syscalls directory which contain the scripts to
generate both uapi header file and system call table
files. The syscall.tbl will be 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_32.h and syscall_table.h files respectively. Both
.sh files will parse the content syscall.tbl to generate
the header and table files. unistd_32.h will be included
by uapi/asm/unistd.h and syscall_table.h is included by
kernel/syscall_table.S - the real system call table.

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

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/microblaze/kernel/syscalls/Makefile      |  38 +++
 arch/microblaze/kernel/syscalls/syscall.tbl   | 410 ++++++++++++++++++++++++++
 arch/microblaze/kernel/syscalls/syscallhdr.sh |  36 +++
 arch/microblaze/kernel/syscalls/syscalltbl.sh |  32 ++
 4 files changed, 516 insertions(+)
 create mode 100644 arch/microblaze/kernel/syscalls/Makefile
 create mode 100644 arch/microblaze/kernel/syscalls/syscall.tbl
 create mode 100644 arch/microblaze/kernel/syscalls/syscallhdr.sh
 create mode 100644 arch/microblaze/kernel/syscalls/syscalltbl.sh

diff --git a/arch/microblaze/kernel/syscalls/Makefile b/arch/microblaze/kernel/syscalls/Makefile
new file mode 100644
index 0000000..659faef
--- /dev/null
+++ b/arch/microblaze/kernel/syscalls/Makefile
@@ -0,0 +1,38 @@
+# SPDX-License-Identifier: GPL-2.0
+kapi := arch/$(SRCARCH)/include/generated/asm
+uapi := arch/$(SRCARCH)/include/generated/uapi/asm
+
+_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
+
+quiet_cmd_syshdr = SYSHDR  $@
+      cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@'	\
+		   '$(syshdr_abis_$(basetarget))'		\
+		   '$(syshdr_pfx_$(basetarget))'		\
+		   '$(syshdr_offset_$(basetarget))'
+
+quiet_cmd_systbl = SYSTBL  $@
+      cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@'	\
+		   '$(systbl_abis_$(basetarget))'		\
+		   '$(systbl_abi_$(basetarget))'		\
+		   '$(systbl_offset_$(basetarget))'
+
+$(uapi)/unistd_32.h: $(syscall) $(syshdr)
+	$(call if_changed,syshdr)
+
+$(kapi)/syscall_table.h: $(syscall) $(systbl)
+	$(call if_changed,systbl)
+
+uapisyshdr-y		+= unistd_32.h
+kapisyshdr-y		+= syscall_table.h
+
+targets	+= $(uapisyshdr-y) $(kapisyshdr-y)
+
+PHONY += all
+all: $(addprefix $(uapi)/,$(uapisyshdr-y))
+all: $(addprefix $(kapi)/,$(kapisyshdr-y))
+	@:
diff --git a/arch/microblaze/kernel/syscalls/syscall.tbl b/arch/microblaze/kernel/syscalls/syscall.tbl
new file mode 100644
index 0000000..a24d09e
--- /dev/null
+++ b/arch/microblaze/kernel/syscalls/syscall.tbl
@@ -0,0 +1,410 @@
+# SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+#
+# system call numbers and entry vectors for microblaze
+#
+# 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	lchown				sys_lchown
+17	common	break				sys_ni_syscall
+18	common	oldstat				sys_ni_syscall
+19	common	lseek				sys_lseek
+20	common	getpid				sys_getpid
+21	common	mount				sys_mount
+22	common	umount				sys_oldumount
+23	common	setuid				sys_setuid
+24	common	getuid				sys_getuid
+25	common	stime				sys_stime
+26	common	ptrace				sys_ptrace
+27	common	alarm				sys_alarm
+28	common	oldfstat			sys_ni_syscall
+29	common	pause				sys_pause
+30	common	utime				sys_utime
+31	common	stty				sys_ni_syscall
+32	common	gtty				sys_ni_syscall
+33	common	access				sys_access
+34	common	nice				sys_nice
+35	common	ftime				sys_ni_syscall
+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
+44	common	prof				sys_ni_syscall
+45	common	brk				sys_brk
+46	common	setgid				sys_setgid
+47	common	getgid				sys_getgid
+48	common	signal				sys_signal
+49	common	geteuid				sys_geteuid
+50	common	getegid				sys_getegid
+51	common	acct				sys_acct
+52	common	umount2				sys_umount
+53	common	lock				sys_ni_syscall
+54	common	ioctl				sys_ioctl
+55	common	fcntl				sys_fcntl
+56	common	mpx				sys_ni_syscall
+57	common	setpgid				sys_setpgid
+58	common	ulimit				sys_ni_syscall
+59	common	oldolduname			sys_ni_syscall
+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_ni_syscall
+68	common	sgetmask			sys_sgetmask
+69	common	ssetmask			sys_ssetmask
+70	common	setreuid			sys_setreuid
+71	common	setregid			sys_setregid
+72	common	sigsuspend			sys_ni_syscall
+73	common	sigpending			sys_sigpending
+74	common	sethostname			sys_sethostname
+75	common	setrlimit			sys_setrlimit
+76	common	getrlimit			sys_ni_syscall
+77	common	getrusage			sys_getrusage
+78	common	gettimeofday			sys_gettimeofday
+79	common	settimeofday			sys_settimeofday
+80	common	getgroups			sys_getgroups
+81	common	setgroups			sys_setgroups
+82	common	select				sys_ni_syscall
+83	common	symlink				sys_symlink
+84	common	oldlstat			sys_ni_syscall
+85	common	readlink			sys_readlink
+86	common	uselib				sys_uselib
+87	common	swapon				sys_swapon
+88	common	reboot				sys_reboot
+89	common	readdir				sys_ni_syscall
+90	common	mmap				sys_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_fchown
+96	common	getpriority			sys_getpriority
+97	common	setpriority			sys_setpriority
+98	common	profil				sys_ni_syscall
+99	common	statfs				sys_statfs
+100	common	fstatfs				sys_fstatfs
+101	common	ioperm				sys_ni_syscall
+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
+109	common	olduname			sys_ni_syscall
+110	common	iopl				sys_ni_syscall
+111	common	vhangup				sys_vhangup
+112	common	idle				sys_ni_syscall
+113	common	vm86old				sys_ni_syscall
+114	common	wait4				sys_wait4
+115	common	swapoff				sys_swapoff
+116	common	sysinfo				sys_sysinfo
+117	common	ipc				sys_ni_syscall
+118	common	fsync				sys_fsync
+119	common	sigreturn			sys_ni_syscall
+120	common	clone				sys_clone
+121	common	setdomainname			sys_setdomainname
+122	common	uname				sys_newuname
+123	common	modify_ldt			sys_ni_syscall
+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
+137	common	afs_syscall			sys_ni_syscall
+138	common	setfsuid			sys_setfsuid
+139	common	setfsgid			sys_setfsgid
+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_setresuid
+165	common	getresuid			sys_getresuid
+166	common	vm86				sys_ni_syscall
+167	common	query_module			sys_ni_syscall
+168	common	poll				sys_poll
+169	common	nfsservctl			sys_ni_syscall
+170	common	setresgid			sys_setresgid
+171	common	getresgid			sys_getresgid
+172	common	prctl				sys_prctl
+173	common	rt_sigreturn			sys_rt_sigreturn_wrapper
+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	chown				sys_chown
+183	common	getcwd				sys_getcwd
+184	common	capget				sys_capget
+185	common	capset				sys_capset
+186	common	sigaltstack			sys_ni_syscall
+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	lchown32			sys_lchown
+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	chown32				sys_chown
+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
+218	common	mincore				sys_mincore
+219	common	madvise				sys_madvise
+220	common	getdents64			sys_getdents64
+221	common	fcntl64				sys_fcntl64
+# 222 is reserved for TUX
+# 223 is unused
+224	common	gettid				sys_gettid
+225	common	readahead			sys_readahead
+226	common	setxattr			sys_setxattr
+227	common	lsetxattr			sys_lsetxattr
+228	common	fsetxattr			sys_fsetxattr
+229	common	getxattr			sys_getxattr
+230	common	lgetxattr			sys_lgetxattr
+231	common	fgetxattr			sys_fgetxattr
+232	common	listxattr			sys_listxattr
+233	common	llistxattr			sys_llistxattr
+234	common	flistxattr			sys_flistxattr
+235	common	removexattr			sys_removexattr
+236	common	lremovexattr			sys_lremovexattr
+237	common	fremovexattr			sys_fremovexattr
+238	common	tkill				sys_tkill
+239	common	sendfile64			sys_sendfile64
+240	common	futex				sys_futex
+241	common	sched_setaffinity		sys_sched_setaffinity
+242	common	sched_getaffinity		sys_sched_getaffinity
+243	common	set_thread_area			sys_ni_syscall
+244	common	get_thread_area			sys_ni_syscall
+245	common	io_setup			sys_io_setup
+246	common	io_destroy			sys_io_destroy
+247	common	io_getevents			sys_io_getevents
+248	common	io_submit			sys_io_submit
+249	common	io_cancel			sys_io_cancel
+250	common	fadvise64			sys_fadvise64
+# 251 is available for reuse (was briefly sys_set_zone_reclaim)
+252	common	exit_group			sys_exit_group
+253	common	lookup_dcookie			sys_lookup_dcookie
+254	common	epoll_create			sys_epoll_create
+255	common	epoll_ctl			sys_epoll_ctl
+256	common	epoll_wait			sys_epoll_wait
+257	common	remap_file_pages		sys_remap_file_pages
+258	common	set_tid_address			sys_set_tid_address
+259	common	timer_create			sys_timer_create
+260	common	timer_settime			sys_timer_settime
+261	common	timer_gettime			sys_timer_gettime
+262	common	timer_getoverrun		sys_timer_getoverrun
+263	common	timer_delete			sys_timer_delete
+264	common	clock_settime			sys_clock_settime
+265	common	clock_gettime			sys_clock_gettime
+266	common	clock_getres			sys_clock_getres
+267	common	clock_nanosleep			sys_clock_nanosleep
+268	common	statfs64			sys_statfs64
+269	common	fstatfs64			sys_fstatfs64
+270	common	tgkill				sys_tgkill
+271	common	utimes				sys_utimes
+272	common	fadvise64_64			sys_fadvise64_64
+273	common	vserver				sys_ni_syscall
+274	common	mbind				sys_mbind
+275	common	get_mempolicy			sys_get_mempolicy
+276	common	set_mempolicy			sys_set_mempolicy
+277	common	mq_open				sys_mq_open
+278	common	mq_unlink			sys_mq_unlink
+279	common	mq_timedsend			sys_mq_timedsend
+280	common	mq_timedreceive			sys_mq_timedreceive
+281	common	mq_notify			sys_mq_notify
+282	common	mq_getsetattr			sys_mq_getsetattr
+283	common	kexec_load			sys_kexec_load
+284	common	waitid				sys_waitid
+# 285 was setaltroot
+286	common	add_key				sys_add_key
+287	common	request_key			sys_request_key
+288	common	keyctl				sys_keyctl
+289	common	ioprio_set			sys_ioprio_set
+290	common	ioprio_get			sys_ioprio_get
+291	common	inotify_init			sys_inotify_init
+292	common	inotify_add_watch		sys_inotify_add_watch
+293	common	inotify_rm_watch		sys_inotify_rm_watch
+294	common	migrate_pages			sys_ni_syscall
+295	common	openat				sys_openat
+296	common	mkdirat				sys_mkdirat
+297	common	mknodat				sys_mknodat
+298	common	fchownat			sys_fchownat
+299	common	futimesat			sys_futimesat
+300	common	fstatat64			sys_fstatat64
+301	common	unlinkat			sys_unlinkat
+302	common	renameat			sys_renameat
+303	common	linkat				sys_linkat
+304	common	symlinkat			sys_symlinkat
+305	common	readlinkat			sys_readlinkat
+306	common	fchmodat			sys_fchmodat
+307	common	faccessat			sys_faccessat
+308	common	pselect6			sys_pselect6
+309	common	ppoll				sys_ppoll
+310	common	unshare				sys_unshare
+311	common	set_robust_list			sys_set_robust_list
+312	common	get_robust_list			sys_get_robust_list
+313	common	splice				sys_splice
+314	common	sync_file_range			sys_sync_file_range
+315	common	tee				sys_tee
+316	common	vmsplice			sys_vmsplice
+317	common	move_pages			sys_move_pages
+318	common	getcpu				sys_getcpu
+319	common	epoll_pwait			sys_epoll_pwait
+320	common	utimensat			sys_utimensat
+321	common	signalfd			sys_signalfd
+322	common	timerfd_create			sys_timerfd_create
+323	common	eventfd				sys_eventfd
+324	common	fallocate			sys_fallocate
+325	common	semtimedop			sys_semtimedop
+326	common	timerfd_settime			sys_timerfd_settime
+327	common	timerfd_gettime			sys_timerfd_gettime
+328	common	semctl				sys_semctl
+329	common	semget				sys_semget
+330	common	semop				sys_semop
+331	common	msgctl				sys_msgctl
+332	common	msgget				sys_msgget
+333	common	msgrcv				sys_msgrcv
+334	common	msgsnd				sys_msgsnd
+335	common	shmat				sys_shmat
+336	common	shmctl				sys_shmctl
+337	common	shmdt				sys_shmdt
+338	common	shmget				sys_shmget
+339	common	signalfd4			sys_signalfd4
+340	common	eventfd2			sys_eventfd2
+341	common	epoll_create1			sys_epoll_create1
+342	common	dup3				sys_dup3
+343	common	pipe2				sys_pipe2
+344	common	inotify_init1			sys_inotify_init1
+345	common	socket				sys_socket
+346	common	socketpair			sys_socketpair
+347	common	bind				sys_bind
+348	common	listen				sys_listen
+349	common	accept				sys_accept
+350	common	connect				sys_connect
+351	common	getsockname			sys_getsockname
+352	common	getpeername			sys_getpeername
+353	common	sendto				sys_sendto
+354	common	send				sys_send
+355	common	recvfrom			sys_recvfrom
+356	common	recv				sys_recv
+357	common	setsockopt			sys_setsockopt
+358	common	getsockopt			sys_getsockopt
+359	common	shutdown			sys_shutdown
+360	common	sendmsg				sys_sendmsg
+361	common	recvmsg				sys_recvmsg
+362	common	accept4				sys_accept4
+363	common	preadv				sys_preadv
+364	common	pwritev				sys_pwritev
+365	common	rt_tgsigqueueinfo		sys_rt_tgsigqueueinfo
+366	common	perf_event_open			sys_perf_event_open
+367	common	recvmmsg			sys_recvmmsg
+368	common	fanotify_init			sys_fanotify_init
+369	common	fanotify_mark			sys_fanotify_mark
+370	common	prlimit64			sys_prlimit64
+371	common	name_to_handle_at		sys_name_to_handle_at
+372	common	open_by_handle_at		sys_open_by_handle_at
+373	common	clock_adjtime			sys_clock_adjtime
+374	common	syncfs				sys_syncfs
+375	common	setns				sys_setns
+376	common	sendmmsg			sys_sendmmsg
+377	common	process_vm_readv		sys_process_vm_readv
+378	common	process_vm_writev		sys_process_vm_writev
+379	common	kcmp				sys_kcmp
+380	common	finit_module			sys_finit_module
+381	common	sched_setattr			sys_sched_setattr
+382	common	sched_getattr			sys_sched_getattr
+383	common	renameat2			sys_renameat2
+384	common	seccomp				sys_seccomp
+385	common	getrandom			sys_getrandom
+386	common	memfd_create			sys_memfd_create
+387	common	bpf				sys_bpf
+388	common	execveat			sys_execveat
+389	common	userfaultfd			sys_userfaultfd
+390	common	membarrier			sys_membarrier
+391	common	mlock2				sys_mlock2
+392	common	copy_file_range			sys_copy_file_range
+393	common	preadv2				sys_preadv2
+394	common	pwritev2			sys_pwritev2
+395	common	pkey_mprotect			sys_pkey_mprotect
+396	common	pkey_alloc			sys_pkey_alloc
+397	common	pkey_free			sys_pkey_free
+398	common	statx				sys_statx
+399	common	io_pgetevents			sys_io_pgetevents
+400	common	rseq				sys_rseq
diff --git a/arch/microblaze/kernel/syscalls/syscallhdr.sh b/arch/microblaze/kernel/syscalls/syscallhdr.sh
new file mode 100644
index 0000000..2e9062a
--- /dev/null
+++ b/arch/microblaze/kernel/syscalls/syscallhdr.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+in="$1"
+out="$2"
+my_abis=`echo "($3)" | tr ',' '|'`
+prefix="$4"
+offset="$5"
+
+fileguard=_UAPI_ASM_MICROBLAZE_`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/microblaze/kernel/syscalls/syscalltbl.sh b/arch/microblaze/kernel/syscalls/syscalltbl.sh
new file mode 100644
index 0000000..85d78d9
--- /dev/null
+++ b/arch/microblaze/kernel/syscalls/syscalltbl.sh
@@ -0,0 +1,32 @@
+#!/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] 9+ messages in thread

* [PATCH v3 3/3] microblaze: generate uapi header and system call table files
  2018-10-26  5:09 [PATCH v3 0/3] microblaze: system call table generation support Firoz Khan
  2018-10-26  5:09 ` [PATCH v3 1/3] microblaze: move __NR_syscalls macro from asm/unistd.h Firoz Khan
  2018-10-26  5:09 ` [PATCH v3 2/3] microblaze: add system call table generation support Firoz Khan
@ 2018-10-26  5:09 ` Firoz Khan
  2018-11-05  9:16   ` Michal Simek
  2018-11-05  8:18 ` [PATCH v3 0/3] microblaze: system call table generation support Michal Simek
  3 siblings, 1 reply; 9+ messages in thread
From: Firoz Khan @ 2018-10-26  5:09 UTC (permalink / raw)
  To: Michal Simek, 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 gener-
ate 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
microblaze/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_table.S file.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/microblaze/Makefile                  |   3 +
 arch/microblaze/include/asm/Kbuild        |   1 +
 arch/microblaze/include/uapi/asm/Kbuild   |   1 +
 arch/microblaze/include/uapi/asm/unistd.h | 411 +-----------------------------
 arch/microblaze/kernel/syscall_table.S    | 406 +----------------------------
 5 files changed, 10 insertions(+), 812 deletions(-)

diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
index 4f3ab57..cda5e03 100644
--- a/arch/microblaze/Makefile
+++ b/arch/microblaze/Makefile
@@ -81,6 +81,9 @@ all: linux.bin
 archclean:
 	$(Q)$(MAKE) $(clean)=$(boot)
 
+archheaders:
+	$(Q)$(MAKE) $(build)=arch/microblaze/kernel/syscalls all
+
 linux.bin linux.bin.gz linux.bin.ub: vmlinux
 	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
 
diff --git a/arch/microblaze/include/asm/Kbuild b/arch/microblaze/include/asm/Kbuild
index 569ba9e..96faf91 100644
--- a/arch/microblaze/include/asm/Kbuild
+++ b/arch/microblaze/include/asm/Kbuild
@@ -31,3 +31,4 @@ generic-y += trace_clock.h
 generic-y += vga.h
 generic-y += word-at-a-time.h
 generic-y += xor.h
+generic-y += syscall_table.h
diff --git a/arch/microblaze/include/uapi/asm/Kbuild b/arch/microblaze/include/uapi/asm/Kbuild
index 2c6a6bf..cda864f 100644
--- a/arch/microblaze/include/uapi/asm/Kbuild
+++ b/arch/microblaze/include/uapi/asm/Kbuild
@@ -28,3 +28,4 @@ generic-y += termbits.h
 generic-y += termios.h
 generic-y += types.h
 generic-y += ucontext.h
+generic-y += unistd_32.h
diff --git a/arch/microblaze/include/uapi/asm/unistd.h b/arch/microblaze/include/uapi/asm/unistd.h
index ed9c6f5..3f2d7cb 100644
--- a/arch/microblaze/include/uapi/asm/unistd.h
+++ b/arch/microblaze/include/uapi/asm/unistd.h
@@ -11,415 +11,6 @@
 #ifndef _UAPI_ASM_MICROBLAZE_UNISTD_H
 #define _UAPI_ASM_MICROBLAZE_UNISTD_H
 
-#define __NR_restart_syscall	0 /* ok */
-#define __NR_exit		1 /* ok */
-#define __NR_fork		2 /* not for no MMU - weird */
-#define __NR_read		3 /* ok */
-#define __NR_write		4 /* ok */
-#define __NR_open		5 /* openat */
-#define __NR_close		6 /* ok */
-#define __NR_waitpid		7 /* waitid */
-#define __NR_creat		8 /* openat */
-#define __NR_link		9 /* linkat */
-#define __NR_unlink		10 /* unlinkat */
-#define __NR_execve		11 /* ok */
-#define __NR_chdir		12 /* ok */
-#define __NR_time		13 /* obsolete -> sys_gettimeofday */
-#define __NR_mknod		14 /* mknodat */
-#define __NR_chmod		15 /* fchmodat */
-#define __NR_lchown		16 /* ok */
-#define __NR_break		17 /* don't know */
-#define __NR_oldstat		18 /* remove */
-#define __NR_lseek		19 /* ok */
-#define __NR_getpid		20 /* ok */
-#define __NR_mount		21 /* ok */
-#define __NR_umount		22 /* ok */  /* use only umount2 */
-#define __NR_setuid		23 /* ok */
-#define __NR_getuid		24 /* ok */
-#define __NR_stime		25 /* obsolete -> sys_settimeofday */
-#define __NR_ptrace		26 /* ok */
-#define __NR_alarm		27 /* obsolete -> sys_setitimer */
-#define __NR_oldfstat		28 /* remove */
-#define __NR_pause		29 /* obsolete -> sys_rt_sigtimedwait */
-#define __NR_utime		30 /* obsolete -> sys_utimesat */
-#define __NR_stty		31 /* remove */
-#define __NR_gtty		32 /* remove */
-#define __NR_access		33 /* faccessat */
-/* can be implemented by sys_setpriority */
-#define __NR_nice		34
-#define __NR_ftime		35 /* remove */
-#define __NR_sync		36 /* ok */
-#define __NR_kill		37 /* ok */
-#define __NR_rename		38 /* renameat */
-#define __NR_mkdir		39 /* mkdirat */
-#define __NR_rmdir		40 /* unlinkat */
-#define __NR_dup		41 /* ok */
-#define __NR_pipe		42 /* ok */
-#define __NR_times		43 /* ok */
-#define __NR_prof		44 /* remove */
-#define __NR_brk		45 /* ok -mmu, nommu specific */
-#define __NR_setgid		46 /* ok */
-#define __NR_getgid		47 /* ok */
-#define __NR_signal		48 /* obsolete -> sys_rt_sigaction */
-#define __NR_geteuid		49 /* ok */
-#define __NR_getegid		50 /* ok */
-#define __NR_acct		51 /* add it and then I can disable it */
-#define __NR_umount2		52 /* remove */
-#define __NR_lock		53 /* remove */
-#define __NR_ioctl		54 /* ok */
-#define __NR_fcntl		55 /* ok -> 64bit version*/
-#define __NR_mpx		56 /* remove */
-#define __NR_setpgid		57 /* ok */
-#define __NR_ulimit		58 /* remove */
-#define __NR_oldolduname	59 /* remove */
-#define __NR_umask		60 /* ok */
-#define __NR_chroot		61 /* ok */
-#define __NR_ustat		62 /* obsolete -> statfs64 */
-#define __NR_dup2		63 /* ok */
-#define __NR_getppid		64 /* ok */
-#define __NR_getpgrp		65 /* obsolete -> sys_getpgid */
-#define __NR_setsid		66 /* ok */
-#define __NR_sigaction		67 /* obsolete -> rt_sigaction */
-#define __NR_sgetmask		68 /* obsolete -> sys_rt_sigprocmask */
-#define __NR_ssetmask		69 /* obsolete ->sys_rt_sigprocmask */
-#define __NR_setreuid		70 /* ok */
-#define __NR_setregid		71 /* ok */
-#define __NR_sigsuspend		72 /* obsolete -> rt_sigsuspend */
-#define __NR_sigpending		73 /* obsolete -> sys_rt_sigpending */
-#define __NR_sethostname	74 /* ok */
-#define __NR_setrlimit		75 /* ok */
-#define __NR_getrlimit		76 /* ok Back compatible 2G limited rlimit */
-#define __NR_getrusage		77 /* ok */
-#define __NR_gettimeofday	78 /* ok */
-#define __NR_settimeofday	79 /* ok */
-#define __NR_getgroups		80 /* ok */
-#define __NR_setgroups		81 /* ok */
-#define __NR_select		82 /* obsolete -> sys_pselect6 */
-#define __NR_symlink		83 /* symlinkat */
-#define __NR_oldlstat		84 /* remove */
-#define __NR_readlink		85 /* obsolete -> sys_readlinkat */
-#define __NR_uselib		86 /* remove */
-#define __NR_swapon		87 /* ok */
-#define __NR_reboot		88 /* ok */
-#define __NR_readdir		89 /* remove ? */
-#define __NR_mmap		90 /* obsolete -> sys_mmap2 */
-#define __NR_munmap		91 /* ok - mmu and nommu */
-#define __NR_truncate		92 /* ok or truncate64 */
-#define __NR_ftruncate		93 /* ok or ftruncate64 */
-#define __NR_fchmod		94 /* ok */
-#define __NR_fchown		95 /* ok */
-#define __NR_getpriority	96 /* ok */
-#define __NR_setpriority	97 /* ok */
-#define __NR_profil		98 /* remove */
-#define __NR_statfs		99 /* ok or statfs64 */
-#define __NR_fstatfs		100  /* ok or fstatfs64 */
-#define __NR_ioperm		101 /* remove */
-#define __NR_socketcall		102 /* remove */
-#define __NR_syslog		103 /* ok */
-#define __NR_setitimer		104 /* ok */
-#define __NR_getitimer		105 /* ok */
-#define __NR_stat		106 /* remove */
-#define __NR_lstat		107 /* remove */
-#define __NR_fstat		108 /* remove */
-#define __NR_olduname		109 /* remove */
-#define __NR_iopl		110 /* remove */
-#define __NR_vhangup		111 /* ok */
-#define __NR_idle		112 /* remove */
-#define __NR_vm86old		113 /* remove */
-#define __NR_wait4		114 /* obsolete -> waitid */
-#define __NR_swapoff		115 /* ok */
-#define __NR_sysinfo		116 /* ok */
-#define __NR_ipc		117 /* remove - direct call */
-#define __NR_fsync		118 /* ok */
-#define __NR_sigreturn		119 /* obsolete -> sys_rt_sigreturn */
-#define __NR_clone		120 /* ok */
-#define __NR_setdomainname	121 /* ok */
-#define __NR_uname		122 /* remove */
-#define __NR_modify_ldt		123 /* remove */
-#define __NR_adjtimex		124 /* ok */
-#define __NR_mprotect		125 /* remove */
-#define __NR_sigprocmask	126 /* obsolete -> sys_rt_sigprocmask */
-#define __NR_create_module	127 /* remove */
-#define __NR_init_module	128 /* ok */
-#define __NR_delete_module	129 /* ok */
-#define __NR_get_kernel_syms	130 /* remove */
-#define __NR_quotactl		131 /* ok */
-#define __NR_getpgid		132 /* ok */
-#define __NR_fchdir		133 /* ok */
-#define __NR_bdflush		134 /* remove */
-#define __NR_sysfs		135 /* needed for busybox */
-#define __NR_personality	136 /* ok */
-#define __NR_afs_syscall	137 /* Syscall for Andrew File System */
-#define __NR_setfsuid		138 /* ok */
-#define __NR_setfsgid		139 /* ok */
-#define __NR__llseek		140 /* remove only lseek */
-#define __NR_getdents		141 /* ok or getdents64 */
-#define __NR__newselect		142 /* remove */
-#define __NR_flock		143 /* ok */
-#define __NR_msync		144 /* remove */
-#define __NR_readv		145 /* ok */
-#define __NR_writev		146 /* ok */
-#define __NR_getsid		147 /* ok */
-#define __NR_fdatasync		148 /* ok */
-#define __NR__sysctl		149 /* remove */
-#define __NR_mlock		150 /* ok - nommu or mmu */
-#define __NR_munlock		151 /* ok - nommu or mmu */
-#define __NR_mlockall		152 /* ok - nommu or mmu */
-#define __NR_munlockall		153 /* ok - nommu or mmu */
-#define __NR_sched_setparam		154 /* ok */
-#define __NR_sched_getparam		155 /* ok */
-#define __NR_sched_setscheduler		156 /* ok */
-#define __NR_sched_getscheduler		157 /* ok */
-#define __NR_sched_yield		158 /* ok */
-#define __NR_sched_get_priority_max	159 /* ok */
-#define __NR_sched_get_priority_min	160 /* ok */
-#define __NR_sched_rr_get_interval	161 /* ok */
-#define __NR_nanosleep		162 /* ok */
-#define __NR_mremap		163 /* ok - nommu or mmu */
-#define __NR_setresuid		164 /* ok */
-#define __NR_getresuid		165 /* ok */
-#define __NR_vm86		166 /* remove */
-#define __NR_query_module	167 /* ok */
-#define __NR_poll		168 /* obsolete -> sys_ppoll */
-#define __NR_nfsservctl		169 /* ok */
-#define __NR_setresgid		170 /* ok */
-#define __NR_getresgid		171 /* ok */
-#define __NR_prctl		172 /* ok */
-#define __NR_rt_sigreturn	173 /* ok */
-#define __NR_rt_sigaction	174 /* ok */
-#define __NR_rt_sigprocmask	175 /* ok */
-#define __NR_rt_sigpending	176 /* ok */
-#define __NR_rt_sigtimedwait	177 /* ok */
-#define __NR_rt_sigqueueinfo	178 /* ok */
-#define __NR_rt_sigsuspend	179 /* ok */
-#define __NR_pread64		180 /* ok */
-#define __NR_pwrite64		181 /* ok */
-#define __NR_chown		182 /* obsolete -> fchownat */
-#define __NR_getcwd		183 /* ok */
-#define __NR_capget		184 /* ok */
-#define __NR_capset		185 /* ok */
-#define __NR_sigaltstack	186 /* remove */
-#define __NR_sendfile		187 /* ok -> exist 64bit version*/
-#define __NR_getpmsg		188 /* remove */
-/* remove - some people actually want streams */
-#define __NR_putpmsg		189
-/* for noMMU - group with clone -> maybe remove */
-#define __NR_vfork		190
-#define __NR_ugetrlimit		191 /* remove - SuS compliant getrlimit */
-#define __NR_mmap2		192 /* ok */
-#define __NR_truncate64		193 /* ok */
-#define __NR_ftruncate64	194 /* ok */
-#define __NR_stat64		195 /* remove _ARCH_WANT_STAT64 */
-#define __NR_lstat64		196 /* remove _ARCH_WANT_STAT64 */
-#define __NR_fstat64		197 /* remove _ARCH_WANT_STAT64 */
-#define __NR_lchown32		198 /* ok - without 32 */
-#define __NR_getuid32		199 /* ok - without 32 */
-#define __NR_getgid32		200 /* ok - without 32 */
-#define __NR_geteuid32		201 /* ok - without 32 */
-#define __NR_getegid32		202 /* ok - without 32 */
-#define __NR_setreuid32		203 /* ok - without 32 */
-#define __NR_setregid32		204 /* ok - without 32 */
-#define __NR_getgroups32	205 /* ok - without 32 */
-#define __NR_setgroups32	206 /* ok - without 32 */
-#define __NR_fchown32		207 /* ok - without 32 */
-#define __NR_setresuid32	208 /* ok - without 32 */
-#define __NR_getresuid32	209 /* ok - without 32 */
-#define __NR_setresgid32	210 /* ok - without 32 */
-#define __NR_getresgid32	211 /* ok - without 32 */
-#define __NR_chown32		212 /* ok - without 32 -obsolete -> fchownat */
-#define __NR_setuid32		213 /* ok - without 32 */
-#define __NR_setgid32		214 /* ok - without 32 */
-#define __NR_setfsuid32		215 /* ok - without 32 */
-#define __NR_setfsgid32		216 /* ok - without 32 */
-#define __NR_pivot_root		217 /* ok */
-#define __NR_mincore		218 /* ok */
-#define __NR_madvise		219 /* ok */
-#define __NR_getdents64		220 /* ok */
-#define __NR_fcntl64		221 /* ok */
-/* 223 is unused */
-#define __NR_gettid		224 /* ok */
-#define __NR_readahead		225 /* ok */
-#define __NR_setxattr		226 /* ok */
-#define __NR_lsetxattr		227 /* ok */
-#define __NR_fsetxattr		228 /* ok */
-#define __NR_getxattr		229 /* ok */
-#define __NR_lgetxattr		230 /* ok */
-#define __NR_fgetxattr		231 /* ok */
-#define __NR_listxattr		232 /* ok */
-#define __NR_llistxattr		233 /* ok */
-#define __NR_flistxattr		234 /* ok */
-#define __NR_removexattr	235 /* ok */
-#define __NR_lremovexattr	236 /* ok */
-#define __NR_fremovexattr	237 /* ok */
-#define __NR_tkill		238 /* ok */
-#define __NR_sendfile64		239 /* ok */
-#define __NR_futex		240 /* ok */
-#define __NR_sched_setaffinity	241 /* ok */
-#define __NR_sched_getaffinity	242 /* ok */
-#define __NR_set_thread_area	243 /* remove */
-#define __NR_get_thread_area	244 /* remove */
-#define __NR_io_setup		245 /* ok */
-#define __NR_io_destroy		246 /* ok */
-#define __NR_io_getevents	247 /* ok */
-#define __NR_io_submit		248 /* ok */
-#define __NR_io_cancel		249 /* ok */
-#define __NR_fadvise64		250 /* remove -> sys_fadvise64_64 */
-/* 251 is available for reuse (was briefly sys_set_zone_reclaim) */
-#define __NR_exit_group		252 /* ok */
-#define __NR_lookup_dcookie	253 /* ok */
-#define __NR_epoll_create	254 /* ok */
-#define __NR_epoll_ctl		255 /* ok */
-#define __NR_epoll_wait		256 /* obsolete -> sys_epoll_pwait */
-#define __NR_remap_file_pages	257 /* only for mmu */
-#define __NR_set_tid_address	258 /* ok */
-#define __NR_timer_create	259 /* ok */
-#define __NR_timer_settime	(__NR_timer_create+1) /* 260 */ /* ok */
-#define __NR_timer_gettime	(__NR_timer_create+2) /* 261 */ /* ok */
-#define __NR_timer_getoverrun	(__NR_timer_create+3) /* 262 */ /* ok */
-#define __NR_timer_delete	(__NR_timer_create+4) /* 263 */ /* ok */
-#define __NR_clock_settime	(__NR_timer_create+5) /* 264 */ /* ok */
-#define __NR_clock_gettime	(__NR_timer_create+6) /* 265 */ /* ok */
-#define __NR_clock_getres	(__NR_timer_create+7) /* 266 */ /* ok */
-#define __NR_clock_nanosleep	(__NR_timer_create+8) /* 267 */ /* ok */
-#define __NR_statfs64		268 /* ok */
-#define __NR_fstatfs64		269 /* ok */
-#define __NR_tgkill		270 /* ok */
-#define __NR_utimes		271 /* obsolete -> sys_futimesat */
-#define __NR_fadvise64_64	272 /* ok */
-#define __NR_vserver		273 /* ok */
-#define __NR_mbind		274 /* only for mmu */
-#define __NR_get_mempolicy	275 /* only for mmu */
-#define __NR_set_mempolicy	276 /* only for mmu */
-#define __NR_mq_open		277 /* ok */
-#define __NR_mq_unlink		(__NR_mq_open+1) /* 278 */ /* ok */
-#define __NR_mq_timedsend	(__NR_mq_open+2) /* 279 */ /* ok */
-#define __NR_mq_timedreceive	(__NR_mq_open+3) /* 280 */ /* ok */
-#define __NR_mq_notify		(__NR_mq_open+4) /* 281 */ /* ok */
-#define __NR_mq_getsetattr	(__NR_mq_open+5) /* 282 */ /* ok */
-#define __NR_kexec_load		283 /* ok */
-#define __NR_waitid		284 /* ok */
-/* #define __NR_sys_setaltroot	285 */
-#define __NR_add_key		286 /* ok */
-#define __NR_request_key	287 /* ok */
-#define __NR_keyctl		288 /* ok */
-#define __NR_ioprio_set		289 /* ok */
-#define __NR_ioprio_get		290 /* ok */
-#define __NR_inotify_init	291 /* ok */
-#define __NR_inotify_add_watch	292 /* ok */
-#define __NR_inotify_rm_watch	293 /* ok */
-#define __NR_migrate_pages	294 /* mmu */
-#define __NR_openat		295 /* ok */
-#define __NR_mkdirat		296 /* ok */
-#define __NR_mknodat		297 /* ok */
-#define __NR_fchownat		298 /* ok */
-#define __NR_futimesat		299 /* obsolete -> sys_utimesat */
-#define __NR_fstatat64		300 /* stat64 */
-#define __NR_unlinkat		301 /* ok */
-#define __NR_renameat		302 /* ok */
-#define __NR_linkat		303 /* ok */
-#define __NR_symlinkat		304 /* ok */
-#define __NR_readlinkat		305 /* ok */
-#define __NR_fchmodat		306 /* ok */
-#define __NR_faccessat		307 /* ok */
-#define __NR_pselect6		308 /* ok */
-#define __NR_ppoll		309 /* ok */
-#define __NR_unshare		310 /* ok */
-#define __NR_set_robust_list	311 /* ok */
-#define __NR_get_robust_list	312 /* ok */
-#define __NR_splice		313 /* ok */
-#define __NR_sync_file_range	314 /* ok */
-#define __NR_tee		315 /* ok */
-#define __NR_vmsplice		316 /* ok */
-#define __NR_move_pages		317 /* mmu */
-#define __NR_getcpu		318 /* ok */
-#define __NR_epoll_pwait	319 /* ok */
-#define __NR_utimensat		320 /* ok */
-#define __NR_signalfd		321 /* ok */
-#define __NR_timerfd_create	322 /* ok */
-#define __NR_eventfd		323 /* ok */
-#define __NR_fallocate		324 /* ok */
-#define __NR_semtimedop		325 /* ok - semaphore group */
-#define __NR_timerfd_settime	326 /* ok */
-#define __NR_timerfd_gettime	327 /* ok */
-/* sysv ipc syscalls */
-#define __NR_semctl		328 /* ok */
-#define __NR_semget		329 /* ok */
-#define __NR_semop		330 /* ok */
-#define __NR_msgctl		331 /* ok */
-#define __NR_msgget		332 /* ok */
-#define __NR_msgrcv		333 /* ok */
-#define __NR_msgsnd		334 /* ok */
-#define __NR_shmat		335 /* ok */
-#define __NR_shmctl		336 /* ok */
-#define __NR_shmdt		337 /* ok */
-#define __NR_shmget		338 /* ok */
-
-
-#define __NR_signalfd4		339 /* new */
-#define __NR_eventfd2		340 /* new */
-#define __NR_epoll_create1	341 /* new */
-#define __NR_dup3		342 /* new */
-#define __NR_pipe2		343 /* new */
-#define __NR_inotify_init1	344 /* new */
-#define __NR_socket		345 /* new */
-#define __NR_socketpair		346 /* new */
-#define __NR_bind		347 /* new */
-#define __NR_listen		348 /* new */
-#define __NR_accept		349 /* new */
-#define __NR_connect		350 /* new */
-#define __NR_getsockname	351 /* new */
-#define __NR_getpeername	352 /* new */
-#define __NR_sendto		353 /* new */
-#define __NR_send		354 /* new */
-#define __NR_recvfrom		355 /* new */
-#define __NR_recv		356 /* new */
-#define __NR_setsockopt		357 /* new */
-#define __NR_getsockopt		358 /* new */
-#define __NR_shutdown		359 /* new */
-#define __NR_sendmsg		360 /* new */
-#define __NR_recvmsg		361 /* new */
-#define __NR_accept4		362 /* new */
-#define __NR_preadv		363 /* new */
-#define __NR_pwritev		364 /* new */
-#define __NR_rt_tgsigqueueinfo	365 /* new */
-#define __NR_perf_event_open	366 /* new */
-#define __NR_recvmmsg		367 /* new */
-#define __NR_fanotify_init	368
-#define __NR_fanotify_mark	369
-#define __NR_prlimit64		370
-#define __NR_name_to_handle_at	371
-#define __NR_open_by_handle_at	372
-#define __NR_clock_adjtime	373
-#define __NR_syncfs		374
-#define __NR_setns		375
-#define __NR_sendmmsg		376
-#define __NR_process_vm_readv	377
-#define __NR_process_vm_writev	378
-#define __NR_kcmp		379
-#define __NR_finit_module	380
-#define __NR_sched_setattr	381
-#define __NR_sched_getattr	382
-#define __NR_renameat2		383
-#define __NR_seccomp		384
-#define __NR_getrandom		385
-#define __NR_memfd_create	386
-#define __NR_bpf		387
-#define __NR_execveat		388
-#define __NR_userfaultfd	389
-#define __NR_membarrier		390
-#define __NR_mlock2		391
-#define __NR_copy_file_range	392
-#define __NR_preadv2		393
-#define __NR_pwritev2		394
-#define __NR_pkey_mprotect	395
-#define __NR_pkey_alloc		396
-#define __NR_pkey_free		397
-#define __NR_statx		398
-#define __NR_io_pgetevents	399
-#define __NR_rseq		400
-
-#ifdef __KERNEL__
-#define __NR_syscalls         401
-#endif
+#include <asm/unistd_32.h>
 
 #endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */
diff --git a/arch/microblaze/kernel/syscall_table.S b/arch/microblaze/kernel/syscall_table.S
index 6ab6505..ce00664 100644
--- a/arch/microblaze/kernel/syscall_table.S
+++ b/arch/microblaze/kernel/syscall_table.S
@@ -1,404 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
+
+#define __SYSCALL(nr, entry, nargs) .long entry
 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_lchown
-	.long sys_ni_syscall		/* old break syscall holder */
-	.long sys_ni_syscall		/* old stat */
-	.long sys_lseek
-	.long sys_getpid		/* 20 */
-	.long sys_mount
-	.long sys_oldumount
-	.long sys_setuid
-	.long sys_getuid
-	.long sys_stime			/* 25 */
-	.long sys_ptrace
-	.long sys_alarm
-	.long sys_ni_syscall		/* oldfstat */
-	.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_setgid
-	.long sys_getgid
-	.long sys_signal
-	.long sys_geteuid
-	.long sys_getegid		/* 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		/* olduname */
-	.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_ni_syscall		/* sys_sigaction */
-	.long sys_sgetmask
-	.long sys_ssetmask
-	.long sys_setreuid		/* 70 */
-	.long sys_setregid
-	.long sys_ni_syscall		/* sys_sigsuspend_wrapper */
-	.long sys_sigpending
-	.long sys_sethostname
-	.long sys_setrlimit		/* 75 */
-	.long sys_ni_syscall		/* old_getrlimit */
-	.long sys_getrusage
-	.long sys_gettimeofday
-	.long sys_settimeofday
-	.long sys_getgroups		/* 80 */
-	.long sys_setgroups
-	.long sys_ni_syscall		/* old_select */
-	.long sys_symlink
-	.long sys_ni_syscall		/* oldlstat */
-	.long sys_readlink		/* 85 */
-	.long sys_uselib
-	.long sys_swapon
-	.long sys_reboot
-	.long sys_ni_syscall		/* old_readdir */
-	.long sys_mmap			/* 90 */ /* old_mmap */
-	.long sys_munmap
-	.long sys_truncate
-	.long sys_ftruncate
-	.long sys_fchmod
-	.long sys_fchown		/* 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 */
-	.long sys_socketcall
-	.long sys_syslog		/* operation with system console */
-	.long sys_setitimer
-	.long sys_getitimer		/* 105 */
-	.long sys_newstat
-	.long sys_newlstat
-	.long sys_newfstat
-	.long sys_ni_syscall		/* uname */
-	.long sys_ni_syscall		/* 110 */ /* iopl */
-	.long sys_vhangup
-	.long sys_ni_syscall		/* old "idle" system call */
-	.long sys_ni_syscall		/* old sys_vm86old */
-	.long sys_wait4
-	.long sys_swapoff		/* 115 */
-	.long sys_sysinfo
-	.long sys_ni_syscall		/* old sys_ipc */
-	.long sys_fsync
-	.long sys_ni_syscall		/* sys_sigreturn_wrapper */
-	.long sys_clone		/* 120 */
-	.long sys_setdomainname
-	.long sys_newuname
-	.long sys_ni_syscall		/* modify_ldt */
-	.long sys_adjtimex
-	.long sys_mprotect		/* 125:	sys_mprotect */
-	.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		/* reserved for afs_syscall */
-	.long sys_setfsuid
-	.long sys_setfsgid
-	.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:	sys_mlock */
-	.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_setresuid
-	.long sys_getresuid		/* 165 */
-	.long sys_ni_syscall		/* sys_vm86 */
-	.long sys_ni_syscall		/* Old sys_query_module */
-	.long sys_poll
-	.long sys_ni_syscall		/* old nfsservctl */
-	.long sys_setresgid		/* 170 */
-	.long sys_getresgid
-	.long sys_prctl
-	.long sys_rt_sigreturn_wrapper
-	.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_chown
-	.long sys_getcwd
-	.long sys_capget
-	.long sys_capset		/* 185 */
-	.long sys_ni_syscall		/* sigaltstack */
-	.long sys_sendfile
-	.long sys_ni_syscall		/* reserved for streams1 */
-	.long sys_ni_syscall		/* reserved for 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_lchown
-	.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_chown
-	.long sys_setuid
-	.long sys_setgid
-	.long sys_setfsuid		/* 215 */
-	.long sys_setfsgid
-	.long sys_pivot_root
-	.long sys_mincore
-	.long sys_madvise
-	.long sys_getdents64		/* 220 */
-	.long sys_fcntl64
-	.long sys_ni_syscall		/* reserved for TUX */
-	.long sys_ni_syscall
-	.long sys_gettid
-	.long sys_readahead		/* 225 */
-	.long sys_setxattr
-	.long sys_lsetxattr
-	.long sys_fsetxattr
-	.long sys_getxattr
-	.long sys_lgetxattr		/* 230 */
-	.long sys_fgetxattr
-	.long sys_listxattr
-	.long sys_llistxattr
-	.long sys_flistxattr
-	.long sys_removexattr		/* 235 */
-	.long sys_lremovexattr
-	.long sys_fremovexattr
-	.long sys_tkill
-	.long sys_sendfile64
-	.long sys_futex			/* 240 */
-	.long sys_sched_setaffinity
-	.long sys_sched_getaffinity
-	.long sys_ni_syscall		/* set_thread_area */
-	.long sys_ni_syscall		/* get_thread_area */
-	.long sys_io_setup		/* 245 */
-	.long sys_io_destroy
-	.long sys_io_getevents
-	.long sys_io_submit
-	.long sys_io_cancel
-	.long sys_fadvise64		/* 250 */
-	.long sys_ni_syscall
-	.long sys_exit_group
-	.long sys_lookup_dcookie
-	.long sys_epoll_create
-	.long sys_epoll_ctl		/* 255 */
-	.long sys_epoll_wait
-	.long sys_remap_file_pages
-	.long sys_set_tid_address
-	.long sys_timer_create
-	.long sys_timer_settime		/* 260 */
-	.long sys_timer_gettime
-	.long sys_timer_getoverrun
-	.long sys_timer_delete
-	.long sys_clock_settime
-	.long sys_clock_gettime		/* 265 */
-	.long sys_clock_getres
-	.long sys_clock_nanosleep
-	.long sys_statfs64
-	.long sys_fstatfs64
-	.long sys_tgkill		/* 270 */
-	.long sys_utimes
-	.long sys_fadvise64_64
-	.long sys_ni_syscall		/* sys_vserver */
-	.long sys_mbind
-	.long sys_get_mempolicy
-	.long sys_set_mempolicy
-	.long sys_mq_open
-	.long sys_mq_unlink
-	.long sys_mq_timedsend
-	.long sys_mq_timedreceive	/* 280 */
-	.long sys_mq_notify
-	.long sys_mq_getsetattr
-	.long sys_kexec_load
-	.long sys_waitid
-	.long sys_ni_syscall		/* 285 */ /* available */
-	.long sys_add_key
-	.long sys_request_key
-	.long sys_keyctl
-	.long sys_ioprio_set
-	.long sys_ioprio_get		/* 290 */
-	.long sys_inotify_init
-	.long sys_inotify_add_watch
-	.long sys_inotify_rm_watch
-	.long sys_ni_syscall		/* sys_migrate_pages */
-	.long sys_openat	/* 295 */
-	.long sys_mkdirat
-	.long sys_mknodat
-	.long sys_fchownat
-	.long sys_futimesat
-	.long sys_fstatat64		/* 300 */
-	.long sys_unlinkat
-	.long sys_renameat
-	.long sys_linkat
-	.long sys_symlinkat
-	.long sys_readlinkat		/* 305 */
-	.long sys_fchmodat
-	.long sys_faccessat
-	.long sys_pselect6
-	.long sys_ppoll
-	.long sys_unshare		/* 310 */
-	.long sys_set_robust_list
-	.long sys_get_robust_list
-	.long sys_splice
-	.long sys_sync_file_range
-	.long sys_tee 			/* 315 */
-	.long sys_vmsplice
-	.long sys_move_pages
-	.long sys_getcpu
-	.long sys_epoll_pwait
-	.long sys_utimensat		/* 320 */
-	.long sys_signalfd
-	.long sys_timerfd_create
-	.long sys_eventfd
-	.long sys_fallocate
-	.long sys_semtimedop		/* 325 */
-	.long sys_timerfd_settime
-	.long sys_timerfd_gettime
-	.long sys_semctl
-	.long sys_semget
-	.long sys_semop			/* 330 */
-	.long sys_msgctl
-	.long sys_msgget
-	.long sys_msgrcv
-	.long sys_msgsnd
-	.long sys_shmat			/* 335 */
-	.long sys_shmctl
-	.long sys_shmdt
-	.long sys_shmget
-	.long sys_signalfd4	/* new syscall */
-	.long sys_eventfd2		/* 340 */
-	.long sys_epoll_create1
-	.long sys_dup3
-	.long sys_pipe2
-	.long sys_inotify_init1
-	.long sys_socket		/* 345 */
-	.long sys_socketpair
-	.long sys_bind
-	.long sys_listen
-	.long sys_accept
-	.long sys_connect		/* 350 */
-	.long sys_getsockname
-	.long sys_getpeername
-	.long sys_sendto
-	.long sys_send
-	.long sys_recvfrom		/* 355 */
-	.long sys_recv
-	.long sys_setsockopt
-	.long sys_getsockopt
-	.long sys_shutdown
-	.long sys_sendmsg		/* 360 */
-	.long sys_recvmsg
-	.long sys_accept4
-	.long sys_preadv
-	.long sys_pwritev
-	.long sys_rt_tgsigqueueinfo	/* 365 */
-	.long sys_perf_event_open
-	.long sys_recvmmsg
-	.long sys_fanotify_init
-	.long sys_fanotify_mark
-	.long sys_prlimit64	/* 370 */
-	.long sys_name_to_handle_at
-	.long sys_open_by_handle_at
-	.long sys_clock_adjtime
-	.long sys_syncfs
-	.long sys_setns			/* 375 */
-	.long sys_sendmmsg
-	.long sys_process_vm_readv
-	.long sys_process_vm_writev
-	.long sys_kcmp
-	.long sys_finit_module		/* 380 */
-	.long sys_sched_setattr
-	.long sys_sched_getattr
-	.long sys_renameat2
-	.long sys_seccomp
-	.long sys_getrandom		/* 385 */
-	.long sys_memfd_create
-	.long sys_bpf
-	.long sys_execveat
-	.long sys_userfaultfd
-	.long sys_membarrier		/* 390 */
-	.long sys_mlock2
-	.long sys_copy_file_range
-	.long sys_preadv2
-	.long sys_pwritev2
-	.long sys_pkey_mprotect		/* 395 */
-	.long sys_pkey_alloc
-	.long sys_pkey_free
-	.long sys_statx
-	.long sys_io_pgetevents
-	.long sys_rseq
+#include <asm/syscall_table.h>
+#undef __SYSCALL
-- 
1.9.1


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

* Re: [PATCH v3 0/3] microblaze: system call table generation support
  2018-10-26  5:09 [PATCH v3 0/3] microblaze: system call table generation support Firoz Khan
                   ` (2 preceding siblings ...)
  2018-10-26  5:09 ` [PATCH v3 3/3] microblaze: generate uapi header and system call table files Firoz Khan
@ 2018-11-05  8:18 ` Michal Simek
  3 siblings, 0 replies; 9+ messages in thread
From: Michal Simek @ 2018-11-05  8:18 UTC (permalink / raw)
  To: Firoz Khan, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel, marcin.juszkiewicz


[-- Attachment #1.1: Type: text/plain, Size: 3204 bytes --]

Hi,

On 26. 10. 18 7:09, Firoz Khan wrote:
> The purpose of this patch series is, we can easily add/modify/delete
> system call table support by changing entry in syscall.tbl file 
> instead of manually changing many files. The other goal is to unify 
> the system call table generation support implementation across all 
> the architectures. 
> 
> The system call tables are in different format in all architecture. 
> It will be difficult to manually add, modify or delete the system 
> calls in the respective files manually. To make it easy by keeping
> a script and which'll generate uapi header file and syscall table 
> file.
> 
> 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.
> 
> 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, m68k, mips, 
> parisc, powerpc, sh, sparc, and xtensa. Below mentioned git repos-
> itory contains more details.
> Git repo:- https://github.com/frzkhn/system_call_table_generator/
> 
> Finally, this is the ground work to solve the Y2038 issue. We need 
> to add two dozen of system calls to solve Y2038 issue. So this patch
> series will help to add new system calls easily by adding new entry 
> in the syscall.tbl.
> 
> Firoz Khan (3):
>   microblaze: move __NR_syscalls macro from asm/unistd.h
>   microblaze: add system call table generation support
>   microblaze: generate uapi header and system call table files
> 
>  arch/microblaze/Makefile                      |   3 +
>  arch/microblaze/include/asm/Kbuild            |   1 +
>  arch/microblaze/include/asm/unistd.h          |   2 -
>  arch/microblaze/include/uapi/asm/Kbuild       |   1 +
>  arch/microblaze/include/uapi/asm/unistd.h     | 407 +------------------------
>  arch/microblaze/kernel/syscall_table.S        | 406 +------------------------
>  arch/microblaze/kernel/syscalls/Makefile      |  38 +++
>  arch/microblaze/kernel/syscalls/syscall.tbl   | 410 ++++++++++++++++++++++++++
>  arch/microblaze/kernel/syscalls/syscallhdr.sh |  36 +++
>  arch/microblaze/kernel/syscalls/syscalltbl.sh |  32 ++
>  10 files changed, 526 insertions(+), 810 deletions(-)
>  create mode 100644 arch/microblaze/kernel/syscalls/Makefile
>  create mode 100644 arch/microblaze/kernel/syscalls/syscall.tbl
>  create mode 100644 arch/microblaze/kernel/syscalls/syscallhdr.sh
>  create mode 100644 arch/microblaze/kernel/syscalls/syscalltbl.sh
> 

where is the changelog?

Thanks,
Michal



-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP SoCs



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: [PATCH v3 3/3] microblaze: generate uapi header and system call table files
  2018-10-26  5:09 ` [PATCH v3 3/3] microblaze: generate uapi header and system call table files Firoz Khan
@ 2018-11-05  9:16   ` Michal Simek
  2018-11-05 10:26     ` Firoz Khan
  0 siblings, 1 reply; 9+ messages in thread
From: Michal Simek @ 2018-11-05  9:16 UTC (permalink / raw)
  To: Firoz Khan, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel, marcin.juszkiewicz


[-- Attachment #1.1: Type: text/plain, Size: 34442 bytes --]

On 26. 10. 18 7:09, Firoz Khan wrote:
> System call table generation script must be run to gener-
> ate 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
> microblaze/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_table.S file.
> 
> Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
> ---
>  arch/microblaze/Makefile                  |   3 +
>  arch/microblaze/include/asm/Kbuild        |   1 +
>  arch/microblaze/include/uapi/asm/Kbuild   |   1 +
>  arch/microblaze/include/uapi/asm/unistd.h | 411 +-----------------------------
>  arch/microblaze/kernel/syscall_table.S    | 406 +----------------------------
>  5 files changed, 10 insertions(+), 812 deletions(-)
> 
> diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
> index 4f3ab57..cda5e03 100644
> --- a/arch/microblaze/Makefile
> +++ b/arch/microblaze/Makefile
> @@ -81,6 +81,9 @@ all: linux.bin
>  archclean:
>  	$(Q)$(MAKE) $(clean)=$(boot)
>  
> +archheaders:
> +	$(Q)$(MAKE) $(build)=arch/microblaze/kernel/syscalls all
> +
>  linux.bin linux.bin.gz linux.bin.ub: vmlinux
>  	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
>  
> diff --git a/arch/microblaze/include/asm/Kbuild b/arch/microblaze/include/asm/Kbuild
> index 569ba9e..96faf91 100644
> --- a/arch/microblaze/include/asm/Kbuild
> +++ b/arch/microblaze/include/asm/Kbuild
> @@ -31,3 +31,4 @@ generic-y += trace_clock.h
>  generic-y += vga.h
>  generic-y += word-at-a-time.h
>  generic-y += xor.h
> +generic-y += syscall_table.h
> diff --git a/arch/microblaze/include/uapi/asm/Kbuild b/arch/microblaze/include/uapi/asm/Kbuild
> index 2c6a6bf..cda864f 100644
> --- a/arch/microblaze/include/uapi/asm/Kbuild
> +++ b/arch/microblaze/include/uapi/asm/Kbuild
> @@ -28,3 +28,4 @@ generic-y += termbits.h
>  generic-y += termios.h
>  generic-y += types.h
>  generic-y += ucontext.h
> +generic-y += unistd_32.h
> diff --git a/arch/microblaze/include/uapi/asm/unistd.h b/arch/microblaze/include/uapi/asm/unistd.h
> index ed9c6f5..3f2d7cb 100644
> --- a/arch/microblaze/include/uapi/asm/unistd.h
> +++ b/arch/microblaze/include/uapi/asm/unistd.h
> @@ -11,415 +11,6 @@
>  #ifndef _UAPI_ASM_MICROBLAZE_UNISTD_H
>  #define _UAPI_ASM_MICROBLAZE_UNISTD_H
>  
> -#define __NR_restart_syscall	0 /* ok */
> -#define __NR_exit		1 /* ok */
> -#define __NR_fork		2 /* not for no MMU - weird */
> -#define __NR_read		3 /* ok */
> -#define __NR_write		4 /* ok */
> -#define __NR_open		5 /* openat */
> -#define __NR_close		6 /* ok */
> -#define __NR_waitpid		7 /* waitid */
> -#define __NR_creat		8 /* openat */
> -#define __NR_link		9 /* linkat */
> -#define __NR_unlink		10 /* unlinkat */
> -#define __NR_execve		11 /* ok */
> -#define __NR_chdir		12 /* ok */
> -#define __NR_time		13 /* obsolete -> sys_gettimeofday */
> -#define __NR_mknod		14 /* mknodat */
> -#define __NR_chmod		15 /* fchmodat */
> -#define __NR_lchown		16 /* ok */
> -#define __NR_break		17 /* don't know */
> -#define __NR_oldstat		18 /* remove */
> -#define __NR_lseek		19 /* ok */
> -#define __NR_getpid		20 /* ok */
> -#define __NR_mount		21 /* ok */
> -#define __NR_umount		22 /* ok */  /* use only umount2 */
> -#define __NR_setuid		23 /* ok */
> -#define __NR_getuid		24 /* ok */
> -#define __NR_stime		25 /* obsolete -> sys_settimeofday */
> -#define __NR_ptrace		26 /* ok */
> -#define __NR_alarm		27 /* obsolete -> sys_setitimer */
> -#define __NR_oldfstat		28 /* remove */
> -#define __NR_pause		29 /* obsolete -> sys_rt_sigtimedwait */
> -#define __NR_utime		30 /* obsolete -> sys_utimesat */
> -#define __NR_stty		31 /* remove */
> -#define __NR_gtty		32 /* remove */
> -#define __NR_access		33 /* faccessat */
> -/* can be implemented by sys_setpriority */
> -#define __NR_nice		34
> -#define __NR_ftime		35 /* remove */
> -#define __NR_sync		36 /* ok */
> -#define __NR_kill		37 /* ok */
> -#define __NR_rename		38 /* renameat */
> -#define __NR_mkdir		39 /* mkdirat */
> -#define __NR_rmdir		40 /* unlinkat */
> -#define __NR_dup		41 /* ok */
> -#define __NR_pipe		42 /* ok */
> -#define __NR_times		43 /* ok */
> -#define __NR_prof		44 /* remove */
> -#define __NR_brk		45 /* ok -mmu, nommu specific */
> -#define __NR_setgid		46 /* ok */
> -#define __NR_getgid		47 /* ok */
> -#define __NR_signal		48 /* obsolete -> sys_rt_sigaction */
> -#define __NR_geteuid		49 /* ok */
> -#define __NR_getegid		50 /* ok */
> -#define __NR_acct		51 /* add it and then I can disable it */
> -#define __NR_umount2		52 /* remove */
> -#define __NR_lock		53 /* remove */
> -#define __NR_ioctl		54 /* ok */
> -#define __NR_fcntl		55 /* ok -> 64bit version*/
> -#define __NR_mpx		56 /* remove */
> -#define __NR_setpgid		57 /* ok */
> -#define __NR_ulimit		58 /* remove */
> -#define __NR_oldolduname	59 /* remove */
> -#define __NR_umask		60 /* ok */
> -#define __NR_chroot		61 /* ok */
> -#define __NR_ustat		62 /* obsolete -> statfs64 */
> -#define __NR_dup2		63 /* ok */
> -#define __NR_getppid		64 /* ok */
> -#define __NR_getpgrp		65 /* obsolete -> sys_getpgid */
> -#define __NR_setsid		66 /* ok */
> -#define __NR_sigaction		67 /* obsolete -> rt_sigaction */
> -#define __NR_sgetmask		68 /* obsolete -> sys_rt_sigprocmask */
> -#define __NR_ssetmask		69 /* obsolete ->sys_rt_sigprocmask */
> -#define __NR_setreuid		70 /* ok */
> -#define __NR_setregid		71 /* ok */
> -#define __NR_sigsuspend		72 /* obsolete -> rt_sigsuspend */
> -#define __NR_sigpending		73 /* obsolete -> sys_rt_sigpending */
> -#define __NR_sethostname	74 /* ok */
> -#define __NR_setrlimit		75 /* ok */
> -#define __NR_getrlimit		76 /* ok Back compatible 2G limited rlimit */
> -#define __NR_getrusage		77 /* ok */
> -#define __NR_gettimeofday	78 /* ok */
> -#define __NR_settimeofday	79 /* ok */
> -#define __NR_getgroups		80 /* ok */
> -#define __NR_setgroups		81 /* ok */
> -#define __NR_select		82 /* obsolete -> sys_pselect6 */
> -#define __NR_symlink		83 /* symlinkat */
> -#define __NR_oldlstat		84 /* remove */
> -#define __NR_readlink		85 /* obsolete -> sys_readlinkat */
> -#define __NR_uselib		86 /* remove */
> -#define __NR_swapon		87 /* ok */
> -#define __NR_reboot		88 /* ok */
> -#define __NR_readdir		89 /* remove ? */
> -#define __NR_mmap		90 /* obsolete -> sys_mmap2 */
> -#define __NR_munmap		91 /* ok - mmu and nommu */
> -#define __NR_truncate		92 /* ok or truncate64 */
> -#define __NR_ftruncate		93 /* ok or ftruncate64 */
> -#define __NR_fchmod		94 /* ok */
> -#define __NR_fchown		95 /* ok */
> -#define __NR_getpriority	96 /* ok */
> -#define __NR_setpriority	97 /* ok */
> -#define __NR_profil		98 /* remove */
> -#define __NR_statfs		99 /* ok or statfs64 */
> -#define __NR_fstatfs		100  /* ok or fstatfs64 */
> -#define __NR_ioperm		101 /* remove */
> -#define __NR_socketcall		102 /* remove */
> -#define __NR_syslog		103 /* ok */
> -#define __NR_setitimer		104 /* ok */
> -#define __NR_getitimer		105 /* ok */
> -#define __NR_stat		106 /* remove */
> -#define __NR_lstat		107 /* remove */
> -#define __NR_fstat		108 /* remove */
> -#define __NR_olduname		109 /* remove */
> -#define __NR_iopl		110 /* remove */
> -#define __NR_vhangup		111 /* ok */
> -#define __NR_idle		112 /* remove */
> -#define __NR_vm86old		113 /* remove */
> -#define __NR_wait4		114 /* obsolete -> waitid */
> -#define __NR_swapoff		115 /* ok */
> -#define __NR_sysinfo		116 /* ok */
> -#define __NR_ipc		117 /* remove - direct call */
> -#define __NR_fsync		118 /* ok */
> -#define __NR_sigreturn		119 /* obsolete -> sys_rt_sigreturn */
> -#define __NR_clone		120 /* ok */
> -#define __NR_setdomainname	121 /* ok */
> -#define __NR_uname		122 /* remove */
> -#define __NR_modify_ldt		123 /* remove */
> -#define __NR_adjtimex		124 /* ok */
> -#define __NR_mprotect		125 /* remove */
> -#define __NR_sigprocmask	126 /* obsolete -> sys_rt_sigprocmask */
> -#define __NR_create_module	127 /* remove */
> -#define __NR_init_module	128 /* ok */
> -#define __NR_delete_module	129 /* ok */
> -#define __NR_get_kernel_syms	130 /* remove */
> -#define __NR_quotactl		131 /* ok */
> -#define __NR_getpgid		132 /* ok */
> -#define __NR_fchdir		133 /* ok */
> -#define __NR_bdflush		134 /* remove */
> -#define __NR_sysfs		135 /* needed for busybox */
> -#define __NR_personality	136 /* ok */
> -#define __NR_afs_syscall	137 /* Syscall for Andrew File System */
> -#define __NR_setfsuid		138 /* ok */
> -#define __NR_setfsgid		139 /* ok */
> -#define __NR__llseek		140 /* remove only lseek */
> -#define __NR_getdents		141 /* ok or getdents64 */
> -#define __NR__newselect		142 /* remove */
> -#define __NR_flock		143 /* ok */
> -#define __NR_msync		144 /* remove */
> -#define __NR_readv		145 /* ok */
> -#define __NR_writev		146 /* ok */
> -#define __NR_getsid		147 /* ok */
> -#define __NR_fdatasync		148 /* ok */
> -#define __NR__sysctl		149 /* remove */
> -#define __NR_mlock		150 /* ok - nommu or mmu */
> -#define __NR_munlock		151 /* ok - nommu or mmu */
> -#define __NR_mlockall		152 /* ok - nommu or mmu */
> -#define __NR_munlockall		153 /* ok - nommu or mmu */
> -#define __NR_sched_setparam		154 /* ok */
> -#define __NR_sched_getparam		155 /* ok */
> -#define __NR_sched_setscheduler		156 /* ok */
> -#define __NR_sched_getscheduler		157 /* ok */
> -#define __NR_sched_yield		158 /* ok */
> -#define __NR_sched_get_priority_max	159 /* ok */
> -#define __NR_sched_get_priority_min	160 /* ok */
> -#define __NR_sched_rr_get_interval	161 /* ok */
> -#define __NR_nanosleep		162 /* ok */
> -#define __NR_mremap		163 /* ok - nommu or mmu */
> -#define __NR_setresuid		164 /* ok */
> -#define __NR_getresuid		165 /* ok */
> -#define __NR_vm86		166 /* remove */
> -#define __NR_query_module	167 /* ok */
> -#define __NR_poll		168 /* obsolete -> sys_ppoll */
> -#define __NR_nfsservctl		169 /* ok */
> -#define __NR_setresgid		170 /* ok */
> -#define __NR_getresgid		171 /* ok */
> -#define __NR_prctl		172 /* ok */
> -#define __NR_rt_sigreturn	173 /* ok */
> -#define __NR_rt_sigaction	174 /* ok */
> -#define __NR_rt_sigprocmask	175 /* ok */
> -#define __NR_rt_sigpending	176 /* ok */
> -#define __NR_rt_sigtimedwait	177 /* ok */
> -#define __NR_rt_sigqueueinfo	178 /* ok */
> -#define __NR_rt_sigsuspend	179 /* ok */
> -#define __NR_pread64		180 /* ok */
> -#define __NR_pwrite64		181 /* ok */
> -#define __NR_chown		182 /* obsolete -> fchownat */
> -#define __NR_getcwd		183 /* ok */
> -#define __NR_capget		184 /* ok */
> -#define __NR_capset		185 /* ok */
> -#define __NR_sigaltstack	186 /* remove */
> -#define __NR_sendfile		187 /* ok -> exist 64bit version*/
> -#define __NR_getpmsg		188 /* remove */
> -/* remove - some people actually want streams */
> -#define __NR_putpmsg		189
> -/* for noMMU - group with clone -> maybe remove */
> -#define __NR_vfork		190
> -#define __NR_ugetrlimit		191 /* remove - SuS compliant getrlimit */
> -#define __NR_mmap2		192 /* ok */
> -#define __NR_truncate64		193 /* ok */
> -#define __NR_ftruncate64	194 /* ok */
> -#define __NR_stat64		195 /* remove _ARCH_WANT_STAT64 */
> -#define __NR_lstat64		196 /* remove _ARCH_WANT_STAT64 */
> -#define __NR_fstat64		197 /* remove _ARCH_WANT_STAT64 */
> -#define __NR_lchown32		198 /* ok - without 32 */
> -#define __NR_getuid32		199 /* ok - without 32 */
> -#define __NR_getgid32		200 /* ok - without 32 */
> -#define __NR_geteuid32		201 /* ok - without 32 */
> -#define __NR_getegid32		202 /* ok - without 32 */
> -#define __NR_setreuid32		203 /* ok - without 32 */
> -#define __NR_setregid32		204 /* ok - without 32 */
> -#define __NR_getgroups32	205 /* ok - without 32 */
> -#define __NR_setgroups32	206 /* ok - without 32 */
> -#define __NR_fchown32		207 /* ok - without 32 */
> -#define __NR_setresuid32	208 /* ok - without 32 */
> -#define __NR_getresuid32	209 /* ok - without 32 */
> -#define __NR_setresgid32	210 /* ok - without 32 */
> -#define __NR_getresgid32	211 /* ok - without 32 */
> -#define __NR_chown32		212 /* ok - without 32 -obsolete -> fchownat */
> -#define __NR_setuid32		213 /* ok - without 32 */
> -#define __NR_setgid32		214 /* ok - without 32 */
> -#define __NR_setfsuid32		215 /* ok - without 32 */
> -#define __NR_setfsgid32		216 /* ok - without 32 */
> -#define __NR_pivot_root		217 /* ok */
> -#define __NR_mincore		218 /* ok */
> -#define __NR_madvise		219 /* ok */
> -#define __NR_getdents64		220 /* ok */
> -#define __NR_fcntl64		221 /* ok */
> -/* 223 is unused */
> -#define __NR_gettid		224 /* ok */
> -#define __NR_readahead		225 /* ok */
> -#define __NR_setxattr		226 /* ok */
> -#define __NR_lsetxattr		227 /* ok */
> -#define __NR_fsetxattr		228 /* ok */
> -#define __NR_getxattr		229 /* ok */
> -#define __NR_lgetxattr		230 /* ok */
> -#define __NR_fgetxattr		231 /* ok */
> -#define __NR_listxattr		232 /* ok */
> -#define __NR_llistxattr		233 /* ok */
> -#define __NR_flistxattr		234 /* ok */
> -#define __NR_removexattr	235 /* ok */
> -#define __NR_lremovexattr	236 /* ok */
> -#define __NR_fremovexattr	237 /* ok */
> -#define __NR_tkill		238 /* ok */
> -#define __NR_sendfile64		239 /* ok */
> -#define __NR_futex		240 /* ok */
> -#define __NR_sched_setaffinity	241 /* ok */
> -#define __NR_sched_getaffinity	242 /* ok */
> -#define __NR_set_thread_area	243 /* remove */
> -#define __NR_get_thread_area	244 /* remove */
> -#define __NR_io_setup		245 /* ok */
> -#define __NR_io_destroy		246 /* ok */
> -#define __NR_io_getevents	247 /* ok */
> -#define __NR_io_submit		248 /* ok */
> -#define __NR_io_cancel		249 /* ok */
> -#define __NR_fadvise64		250 /* remove -> sys_fadvise64_64 */
> -/* 251 is available for reuse (was briefly sys_set_zone_reclaim) */
> -#define __NR_exit_group		252 /* ok */
> -#define __NR_lookup_dcookie	253 /* ok */
> -#define __NR_epoll_create	254 /* ok */
> -#define __NR_epoll_ctl		255 /* ok */
> -#define __NR_epoll_wait		256 /* obsolete -> sys_epoll_pwait */
> -#define __NR_remap_file_pages	257 /* only for mmu */
> -#define __NR_set_tid_address	258 /* ok */
> -#define __NR_timer_create	259 /* ok */
> -#define __NR_timer_settime	(__NR_timer_create+1) /* 260 */ /* ok */
> -#define __NR_timer_gettime	(__NR_timer_create+2) /* 261 */ /* ok */
> -#define __NR_timer_getoverrun	(__NR_timer_create+3) /* 262 */ /* ok */
> -#define __NR_timer_delete	(__NR_timer_create+4) /* 263 */ /* ok */
> -#define __NR_clock_settime	(__NR_timer_create+5) /* 264 */ /* ok */
> -#define __NR_clock_gettime	(__NR_timer_create+6) /* 265 */ /* ok */
> -#define __NR_clock_getres	(__NR_timer_create+7) /* 266 */ /* ok */
> -#define __NR_clock_nanosleep	(__NR_timer_create+8) /* 267 */ /* ok */
> -#define __NR_statfs64		268 /* ok */
> -#define __NR_fstatfs64		269 /* ok */
> -#define __NR_tgkill		270 /* ok */
> -#define __NR_utimes		271 /* obsolete -> sys_futimesat */
> -#define __NR_fadvise64_64	272 /* ok */
> -#define __NR_vserver		273 /* ok */
> -#define __NR_mbind		274 /* only for mmu */
> -#define __NR_get_mempolicy	275 /* only for mmu */
> -#define __NR_set_mempolicy	276 /* only for mmu */
> -#define __NR_mq_open		277 /* ok */
> -#define __NR_mq_unlink		(__NR_mq_open+1) /* 278 */ /* ok */
> -#define __NR_mq_timedsend	(__NR_mq_open+2) /* 279 */ /* ok */
> -#define __NR_mq_timedreceive	(__NR_mq_open+3) /* 280 */ /* ok */
> -#define __NR_mq_notify		(__NR_mq_open+4) /* 281 */ /* ok */
> -#define __NR_mq_getsetattr	(__NR_mq_open+5) /* 282 */ /* ok */
> -#define __NR_kexec_load		283 /* ok */
> -#define __NR_waitid		284 /* ok */
> -/* #define __NR_sys_setaltroot	285 */
> -#define __NR_add_key		286 /* ok */
> -#define __NR_request_key	287 /* ok */
> -#define __NR_keyctl		288 /* ok */
> -#define __NR_ioprio_set		289 /* ok */
> -#define __NR_ioprio_get		290 /* ok */
> -#define __NR_inotify_init	291 /* ok */
> -#define __NR_inotify_add_watch	292 /* ok */
> -#define __NR_inotify_rm_watch	293 /* ok */
> -#define __NR_migrate_pages	294 /* mmu */
> -#define __NR_openat		295 /* ok */
> -#define __NR_mkdirat		296 /* ok */
> -#define __NR_mknodat		297 /* ok */
> -#define __NR_fchownat		298 /* ok */
> -#define __NR_futimesat		299 /* obsolete -> sys_utimesat */
> -#define __NR_fstatat64		300 /* stat64 */
> -#define __NR_unlinkat		301 /* ok */
> -#define __NR_renameat		302 /* ok */
> -#define __NR_linkat		303 /* ok */
> -#define __NR_symlinkat		304 /* ok */
> -#define __NR_readlinkat		305 /* ok */
> -#define __NR_fchmodat		306 /* ok */
> -#define __NR_faccessat		307 /* ok */
> -#define __NR_pselect6		308 /* ok */
> -#define __NR_ppoll		309 /* ok */
> -#define __NR_unshare		310 /* ok */
> -#define __NR_set_robust_list	311 /* ok */
> -#define __NR_get_robust_list	312 /* ok */
> -#define __NR_splice		313 /* ok */
> -#define __NR_sync_file_range	314 /* ok */
> -#define __NR_tee		315 /* ok */
> -#define __NR_vmsplice		316 /* ok */
> -#define __NR_move_pages		317 /* mmu */
> -#define __NR_getcpu		318 /* ok */
> -#define __NR_epoll_pwait	319 /* ok */
> -#define __NR_utimensat		320 /* ok */
> -#define __NR_signalfd		321 /* ok */
> -#define __NR_timerfd_create	322 /* ok */
> -#define __NR_eventfd		323 /* ok */
> -#define __NR_fallocate		324 /* ok */
> -#define __NR_semtimedop		325 /* ok - semaphore group */
> -#define __NR_timerfd_settime	326 /* ok */
> -#define __NR_timerfd_gettime	327 /* ok */
> -/* sysv ipc syscalls */
> -#define __NR_semctl		328 /* ok */
> -#define __NR_semget		329 /* ok */
> -#define __NR_semop		330 /* ok */
> -#define __NR_msgctl		331 /* ok */
> -#define __NR_msgget		332 /* ok */
> -#define __NR_msgrcv		333 /* ok */
> -#define __NR_msgsnd		334 /* ok */
> -#define __NR_shmat		335 /* ok */
> -#define __NR_shmctl		336 /* ok */
> -#define __NR_shmdt		337 /* ok */
> -#define __NR_shmget		338 /* ok */
> -
> -
> -#define __NR_signalfd4		339 /* new */
> -#define __NR_eventfd2		340 /* new */
> -#define __NR_epoll_create1	341 /* new */
> -#define __NR_dup3		342 /* new */
> -#define __NR_pipe2		343 /* new */
> -#define __NR_inotify_init1	344 /* new */
> -#define __NR_socket		345 /* new */
> -#define __NR_socketpair		346 /* new */
> -#define __NR_bind		347 /* new */
> -#define __NR_listen		348 /* new */
> -#define __NR_accept		349 /* new */
> -#define __NR_connect		350 /* new */
> -#define __NR_getsockname	351 /* new */
> -#define __NR_getpeername	352 /* new */
> -#define __NR_sendto		353 /* new */
> -#define __NR_send		354 /* new */
> -#define __NR_recvfrom		355 /* new */
> -#define __NR_recv		356 /* new */
> -#define __NR_setsockopt		357 /* new */
> -#define __NR_getsockopt		358 /* new */
> -#define __NR_shutdown		359 /* new */
> -#define __NR_sendmsg		360 /* new */
> -#define __NR_recvmsg		361 /* new */
> -#define __NR_accept4		362 /* new */
> -#define __NR_preadv		363 /* new */
> -#define __NR_pwritev		364 /* new */
> -#define __NR_rt_tgsigqueueinfo	365 /* new */
> -#define __NR_perf_event_open	366 /* new */
> -#define __NR_recvmmsg		367 /* new */
> -#define __NR_fanotify_init	368
> -#define __NR_fanotify_mark	369
> -#define __NR_prlimit64		370
> -#define __NR_name_to_handle_at	371
> -#define __NR_open_by_handle_at	372
> -#define __NR_clock_adjtime	373
> -#define __NR_syncfs		374
> -#define __NR_setns		375
> -#define __NR_sendmmsg		376
> -#define __NR_process_vm_readv	377
> -#define __NR_process_vm_writev	378
> -#define __NR_kcmp		379
> -#define __NR_finit_module	380
> -#define __NR_sched_setattr	381
> -#define __NR_sched_getattr	382
> -#define __NR_renameat2		383
> -#define __NR_seccomp		384
> -#define __NR_getrandom		385
> -#define __NR_memfd_create	386
> -#define __NR_bpf		387
> -#define __NR_execveat		388
> -#define __NR_userfaultfd	389
> -#define __NR_membarrier		390
> -#define __NR_mlock2		391
> -#define __NR_copy_file_range	392
> -#define __NR_preadv2		393
> -#define __NR_pwritev2		394
> -#define __NR_pkey_mprotect	395
> -#define __NR_pkey_alloc		396
> -#define __NR_pkey_free		397
> -#define __NR_statx		398
> -#define __NR_io_pgetevents	399
> -#define __NR_rseq		400
> -
> -#ifdef __KERNEL__
> -#define __NR_syscalls         401
> -#endif
> +#include <asm/unistd_32.h>
>  
>  #endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */
> diff --git a/arch/microblaze/kernel/syscall_table.S b/arch/microblaze/kernel/syscall_table.S
> index 6ab6505..ce00664 100644
> --- a/arch/microblaze/kernel/syscall_table.S
> +++ b/arch/microblaze/kernel/syscall_table.S
> @@ -1,404 +1,6 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
> +
> +#define __SYSCALL(nr, entry, nargs) .long entry
>  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_lchown
> -	.long sys_ni_syscall		/* old break syscall holder */
> -	.long sys_ni_syscall		/* old stat */
> -	.long sys_lseek
> -	.long sys_getpid		/* 20 */
> -	.long sys_mount
> -	.long sys_oldumount
> -	.long sys_setuid
> -	.long sys_getuid
> -	.long sys_stime			/* 25 */
> -	.long sys_ptrace
> -	.long sys_alarm
> -	.long sys_ni_syscall		/* oldfstat */
> -	.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_setgid
> -	.long sys_getgid
> -	.long sys_signal
> -	.long sys_geteuid
> -	.long sys_getegid		/* 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		/* olduname */
> -	.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_ni_syscall		/* sys_sigaction */
> -	.long sys_sgetmask
> -	.long sys_ssetmask
> -	.long sys_setreuid		/* 70 */
> -	.long sys_setregid
> -	.long sys_ni_syscall		/* sys_sigsuspend_wrapper */
> -	.long sys_sigpending
> -	.long sys_sethostname
> -	.long sys_setrlimit		/* 75 */
> -	.long sys_ni_syscall		/* old_getrlimit */
> -	.long sys_getrusage
> -	.long sys_gettimeofday
> -	.long sys_settimeofday
> -	.long sys_getgroups		/* 80 */
> -	.long sys_setgroups
> -	.long sys_ni_syscall		/* old_select */
> -	.long sys_symlink
> -	.long sys_ni_syscall		/* oldlstat */
> -	.long sys_readlink		/* 85 */
> -	.long sys_uselib
> -	.long sys_swapon
> -	.long sys_reboot
> -	.long sys_ni_syscall		/* old_readdir */
> -	.long sys_mmap			/* 90 */ /* old_mmap */
> -	.long sys_munmap
> -	.long sys_truncate
> -	.long sys_ftruncate
> -	.long sys_fchmod
> -	.long sys_fchown		/* 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 */
> -	.long sys_socketcall
> -	.long sys_syslog		/* operation with system console */
> -	.long sys_setitimer
> -	.long sys_getitimer		/* 105 */
> -	.long sys_newstat
> -	.long sys_newlstat
> -	.long sys_newfstat
> -	.long sys_ni_syscall		/* uname */
> -	.long sys_ni_syscall		/* 110 */ /* iopl */
> -	.long sys_vhangup
> -	.long sys_ni_syscall		/* old "idle" system call */
> -	.long sys_ni_syscall		/* old sys_vm86old */
> -	.long sys_wait4
> -	.long sys_swapoff		/* 115 */
> -	.long sys_sysinfo
> -	.long sys_ni_syscall		/* old sys_ipc */
> -	.long sys_fsync
> -	.long sys_ni_syscall		/* sys_sigreturn_wrapper */
> -	.long sys_clone		/* 120 */
> -	.long sys_setdomainname
> -	.long sys_newuname
> -	.long sys_ni_syscall		/* modify_ldt */
> -	.long sys_adjtimex
> -	.long sys_mprotect		/* 125:	sys_mprotect */
> -	.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		/* reserved for afs_syscall */
> -	.long sys_setfsuid
> -	.long sys_setfsgid
> -	.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:	sys_mlock */
> -	.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_setresuid
> -	.long sys_getresuid		/* 165 */
> -	.long sys_ni_syscall		/* sys_vm86 */
> -	.long sys_ni_syscall		/* Old sys_query_module */
> -	.long sys_poll
> -	.long sys_ni_syscall		/* old nfsservctl */
> -	.long sys_setresgid		/* 170 */
> -	.long sys_getresgid
> -	.long sys_prctl
> -	.long sys_rt_sigreturn_wrapper
> -	.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_chown
> -	.long sys_getcwd
> -	.long sys_capget
> -	.long sys_capset		/* 185 */
> -	.long sys_ni_syscall		/* sigaltstack */
> -	.long sys_sendfile
> -	.long sys_ni_syscall		/* reserved for streams1 */
> -	.long sys_ni_syscall		/* reserved for 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_lchown
> -	.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_chown
> -	.long sys_setuid
> -	.long sys_setgid
> -	.long sys_setfsuid		/* 215 */
> -	.long sys_setfsgid
> -	.long sys_pivot_root
> -	.long sys_mincore
> -	.long sys_madvise
> -	.long sys_getdents64		/* 220 */
> -	.long sys_fcntl64
> -	.long sys_ni_syscall		/* reserved for TUX */
> -	.long sys_ni_syscall
> -	.long sys_gettid
> -	.long sys_readahead		/* 225 */
> -	.long sys_setxattr
> -	.long sys_lsetxattr
> -	.long sys_fsetxattr
> -	.long sys_getxattr
> -	.long sys_lgetxattr		/* 230 */
> -	.long sys_fgetxattr
> -	.long sys_listxattr
> -	.long sys_llistxattr
> -	.long sys_flistxattr
> -	.long sys_removexattr		/* 235 */
> -	.long sys_lremovexattr
> -	.long sys_fremovexattr
> -	.long sys_tkill
> -	.long sys_sendfile64
> -	.long sys_futex			/* 240 */
> -	.long sys_sched_setaffinity
> -	.long sys_sched_getaffinity
> -	.long sys_ni_syscall		/* set_thread_area */
> -	.long sys_ni_syscall		/* get_thread_area */
> -	.long sys_io_setup		/* 245 */
> -	.long sys_io_destroy
> -	.long sys_io_getevents
> -	.long sys_io_submit
> -	.long sys_io_cancel
> -	.long sys_fadvise64		/* 250 */
> -	.long sys_ni_syscall
> -	.long sys_exit_group
> -	.long sys_lookup_dcookie
> -	.long sys_epoll_create
> -	.long sys_epoll_ctl		/* 255 */
> -	.long sys_epoll_wait
> -	.long sys_remap_file_pages
> -	.long sys_set_tid_address
> -	.long sys_timer_create
> -	.long sys_timer_settime		/* 260 */
> -	.long sys_timer_gettime
> -	.long sys_timer_getoverrun
> -	.long sys_timer_delete
> -	.long sys_clock_settime
> -	.long sys_clock_gettime		/* 265 */
> -	.long sys_clock_getres
> -	.long sys_clock_nanosleep
> -	.long sys_statfs64
> -	.long sys_fstatfs64
> -	.long sys_tgkill		/* 270 */
> -	.long sys_utimes
> -	.long sys_fadvise64_64
> -	.long sys_ni_syscall		/* sys_vserver */
> -	.long sys_mbind
> -	.long sys_get_mempolicy
> -	.long sys_set_mempolicy
> -	.long sys_mq_open
> -	.long sys_mq_unlink
> -	.long sys_mq_timedsend
> -	.long sys_mq_timedreceive	/* 280 */
> -	.long sys_mq_notify
> -	.long sys_mq_getsetattr
> -	.long sys_kexec_load
> -	.long sys_waitid
> -	.long sys_ni_syscall		/* 285 */ /* available */
> -	.long sys_add_key
> -	.long sys_request_key
> -	.long sys_keyctl
> -	.long sys_ioprio_set
> -	.long sys_ioprio_get		/* 290 */
> -	.long sys_inotify_init
> -	.long sys_inotify_add_watch
> -	.long sys_inotify_rm_watch
> -	.long sys_ni_syscall		/* sys_migrate_pages */
> -	.long sys_openat	/* 295 */
> -	.long sys_mkdirat
> -	.long sys_mknodat
> -	.long sys_fchownat
> -	.long sys_futimesat
> -	.long sys_fstatat64		/* 300 */
> -	.long sys_unlinkat
> -	.long sys_renameat
> -	.long sys_linkat
> -	.long sys_symlinkat
> -	.long sys_readlinkat		/* 305 */
> -	.long sys_fchmodat
> -	.long sys_faccessat
> -	.long sys_pselect6
> -	.long sys_ppoll
> -	.long sys_unshare		/* 310 */
> -	.long sys_set_robust_list
> -	.long sys_get_robust_list
> -	.long sys_splice
> -	.long sys_sync_file_range
> -	.long sys_tee 			/* 315 */
> -	.long sys_vmsplice
> -	.long sys_move_pages
> -	.long sys_getcpu
> -	.long sys_epoll_pwait
> -	.long sys_utimensat		/* 320 */
> -	.long sys_signalfd
> -	.long sys_timerfd_create
> -	.long sys_eventfd
> -	.long sys_fallocate
> -	.long sys_semtimedop		/* 325 */
> -	.long sys_timerfd_settime
> -	.long sys_timerfd_gettime
> -	.long sys_semctl
> -	.long sys_semget
> -	.long sys_semop			/* 330 */
> -	.long sys_msgctl
> -	.long sys_msgget
> -	.long sys_msgrcv
> -	.long sys_msgsnd
> -	.long sys_shmat			/* 335 */
> -	.long sys_shmctl
> -	.long sys_shmdt
> -	.long sys_shmget
> -	.long sys_signalfd4	/* new syscall */
> -	.long sys_eventfd2		/* 340 */
> -	.long sys_epoll_create1
> -	.long sys_dup3
> -	.long sys_pipe2
> -	.long sys_inotify_init1
> -	.long sys_socket		/* 345 */
> -	.long sys_socketpair
> -	.long sys_bind
> -	.long sys_listen
> -	.long sys_accept
> -	.long sys_connect		/* 350 */
> -	.long sys_getsockname
> -	.long sys_getpeername
> -	.long sys_sendto
> -	.long sys_send
> -	.long sys_recvfrom		/* 355 */
> -	.long sys_recv
> -	.long sys_setsockopt
> -	.long sys_getsockopt
> -	.long sys_shutdown
> -	.long sys_sendmsg		/* 360 */
> -	.long sys_recvmsg
> -	.long sys_accept4
> -	.long sys_preadv
> -	.long sys_pwritev
> -	.long sys_rt_tgsigqueueinfo	/* 365 */
> -	.long sys_perf_event_open
> -	.long sys_recvmmsg
> -	.long sys_fanotify_init
> -	.long sys_fanotify_mark
> -	.long sys_prlimit64	/* 370 */
> -	.long sys_name_to_handle_at
> -	.long sys_open_by_handle_at
> -	.long sys_clock_adjtime
> -	.long sys_syncfs
> -	.long sys_setns			/* 375 */
> -	.long sys_sendmmsg
> -	.long sys_process_vm_readv
> -	.long sys_process_vm_writev
> -	.long sys_kcmp
> -	.long sys_finit_module		/* 380 */
> -	.long sys_sched_setattr
> -	.long sys_sched_getattr
> -	.long sys_renameat2
> -	.long sys_seccomp
> -	.long sys_getrandom		/* 385 */
> -	.long sys_memfd_create
> -	.long sys_bpf
> -	.long sys_execveat
> -	.long sys_userfaultfd
> -	.long sys_membarrier		/* 390 */
> -	.long sys_mlock2
> -	.long sys_copy_file_range
> -	.long sys_preadv2
> -	.long sys_pwritev2
> -	.long sys_pkey_mprotect		/* 395 */
> -	.long sys_pkey_alloc
> -	.long sys_pkey_free
> -	.long sys_statx
> -	.long sys_io_pgetevents
> -	.long sys_rseq
> +#include <asm/syscall_table.h>
> +#undef __SYSCALL
> 

I still don't think this is correct.

I have done these steps

make mrproper
make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move
Applied 1/3
make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move
Applied 2/3
make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move
Applied 3/3
make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move

And compare all these versions. Till 2/3 all is fine but when 3/3 is
applied

include/asm/unistd.h contains
#include <asm/unistd_32.h>

Then include/asm/unistd_32.h contains
#include <asm-generic/unistd_32.h>
which is different syscalls table.

I didn't play with it for a long time but removing generic unistd_32.h
is fixing it. Please take a look.

diff --git a/arch/microblaze/include/uapi/asm/Kbuild
b/arch/microblaze/include/uapi/asm/Kbuild
index cda864f4b62e..2c6a6bffea32 100644
--- a/arch/microblaze/include/uapi/asm/Kbuild
+++ b/arch/microblaze/include/uapi/asm/Kbuild
@@ -28,4 +28,3 @@ generic-y += termbits.h
 generic-y += termios.h
 generic-y += types.h
 generic-y += ucontext.h
-generic-y += unistd_32.h

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP SoCs



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: [PATCH v3 3/3] microblaze: generate uapi header and system call table files
  2018-11-05  9:16   ` Michal Simek
@ 2018-11-05 10:26     ` Firoz Khan
  2018-11-08 13:44       ` Arnd Bergmann
  0 siblings, 1 reply; 9+ messages in thread
From: Firoz Khan @ 2018-11-05 10:26 UTC (permalink / raw)
  To: Michal Simek
  Cc: 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 Michal,

On Mon, 5 Nov 2018 at 14:46, Michal Simek <monstr@monstr.eu> wrote:
>
> On 26. 10. 18 7:09, Firoz Khan wrote:
> > System call table generation script must be run to gener-
> > ate 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
> > microblaze/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_table.S file.
> >
> > Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
> > ---
> >  arch/microblaze/Makefile                  |   3 +
> >  arch/microblaze/include/asm/Kbuild        |   1 +
> >  arch/microblaze/include/uapi/asm/Kbuild   |   1 +
> >  arch/microblaze/include/uapi/asm/unistd.h | 411 +-----------------------------
> >  arch/microblaze/kernel/syscall_table.S    | 406 +----------------------------
> >  5 files changed, 10 insertions(+), 812 deletions(-)
> >
> > diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
> > index 4f3ab57..cda5e03 100644
> > --- a/arch/microblaze/Makefile
> > +++ b/arch/microblaze/Makefile
> > @@ -81,6 +81,9 @@ all: linux.bin
> >  archclean:
> >       $(Q)$(MAKE) $(clean)=$(boot)
> >
> > +archheaders:
> > +     $(Q)$(MAKE) $(build)=arch/microblaze/kernel/syscalls all
> > +
> >  linux.bin linux.bin.gz linux.bin.ub: vmlinux
> >       $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
> >
> > diff --git a/arch/microblaze/include/asm/Kbuild b/arch/microblaze/include/asm/Kbuild
> > index 569ba9e..96faf91 100644
> > --- a/arch/microblaze/include/asm/Kbuild
> > +++ b/arch/microblaze/include/asm/Kbuild
> > @@ -31,3 +31,4 @@ generic-y += trace_clock.h
> >  generic-y += vga.h
> >  generic-y += word-at-a-time.h
> >  generic-y += xor.h
> > +generic-y += syscall_table.h
> > diff --git a/arch/microblaze/include/uapi/asm/Kbuild b/arch/microblaze/include/uapi/asm/Kbuild
> > index 2c6a6bf..cda864f 100644
> > --- a/arch/microblaze/include/uapi/asm/Kbuild
> > +++ b/arch/microblaze/include/uapi/asm/Kbuild
> > @@ -28,3 +28,4 @@ generic-y += termbits.h
> >  generic-y += termios.h
> >  generic-y += types.h
> >  generic-y += ucontext.h
> > +generic-y += unistd_32.h
> > diff --git a/arch/microblaze/include/uapi/asm/unistd.h b/arch/microblaze/include/uapi/asm/unistd.h
> > index ed9c6f5..3f2d7cb 100644
> > --- a/arch/microblaze/include/uapi/asm/unistd.h
> > +++ b/arch/microblaze/include/uapi/asm/unistd.h
> > @@ -11,415 +11,6 @@
> >  #ifndef _UAPI_ASM_MICROBLAZE_UNISTD_H
> >  #define _UAPI_ASM_MICROBLAZE_UNISTD_H
> >
> > -#define __NR_restart_syscall 0 /* ok */
> > -#define __NR_exit            1 /* ok */
> > -#define __NR_fork            2 /* not for no MMU - weird */
> > -#define __NR_read            3 /* ok */
> > -#define __NR_write           4 /* ok */
> > -#define __NR_open            5 /* openat */
> > -#define __NR_close           6 /* ok */
> > -#define __NR_waitpid         7 /* waitid */
> > -#define __NR_creat           8 /* openat */
> > -#define __NR_link            9 /* linkat */
> > -#define __NR_unlink          10 /* unlinkat */
> > -#define __NR_execve          11 /* ok */
> > -#define __NR_chdir           12 /* ok */
> > -#define __NR_time            13 /* obsolete -> sys_gettimeofday */
> > -#define __NR_mknod           14 /* mknodat */
> > -#define __NR_chmod           15 /* fchmodat */
> > -#define __NR_lchown          16 /* ok */
> > -#define __NR_break           17 /* don't know */
> > -#define __NR_oldstat         18 /* remove */
> > -#define __NR_lseek           19 /* ok */
> > -#define __NR_getpid          20 /* ok */
> > -#define __NR_mount           21 /* ok */
> > -#define __NR_umount          22 /* ok */  /* use only umount2 */
> > -#define __NR_setuid          23 /* ok */
> > -#define __NR_getuid          24 /* ok */
> > -#define __NR_stime           25 /* obsolete -> sys_settimeofday */
> > -#define __NR_ptrace          26 /* ok */
> > -#define __NR_alarm           27 /* obsolete -> sys_setitimer */
> > -#define __NR_oldfstat                28 /* remove */
> > -#define __NR_pause           29 /* obsolete -> sys_rt_sigtimedwait */
> > -#define __NR_utime           30 /* obsolete -> sys_utimesat */
> > -#define __NR_stty            31 /* remove */
> > -#define __NR_gtty            32 /* remove */
> > -#define __NR_access          33 /* faccessat */
> > -/* can be implemented by sys_setpriority */
> > -#define __NR_nice            34
> > -#define __NR_ftime           35 /* remove */
> > -#define __NR_sync            36 /* ok */
> > -#define __NR_kill            37 /* ok */
> > -#define __NR_rename          38 /* renameat */
> > -#define __NR_mkdir           39 /* mkdirat */
> > -#define __NR_rmdir           40 /* unlinkat */
> > -#define __NR_dup             41 /* ok */
> > -#define __NR_pipe            42 /* ok */
> > -#define __NR_times           43 /* ok */
> > -#define __NR_prof            44 /* remove */
> > -#define __NR_brk             45 /* ok -mmu, nommu specific */
> > -#define __NR_setgid          46 /* ok */
> > -#define __NR_getgid          47 /* ok */
> > -#define __NR_signal          48 /* obsolete -> sys_rt_sigaction */
> > -#define __NR_geteuid         49 /* ok */
> > -#define __NR_getegid         50 /* ok */
> > -#define __NR_acct            51 /* add it and then I can disable it */
> > -#define __NR_umount2         52 /* remove */
> > -#define __NR_lock            53 /* remove */
> > -#define __NR_ioctl           54 /* ok */
> > -#define __NR_fcntl           55 /* ok -> 64bit version*/
> > -#define __NR_mpx             56 /* remove */
> > -#define __NR_setpgid         57 /* ok */
> > -#define __NR_ulimit          58 /* remove */
> > -#define __NR_oldolduname     59 /* remove */
> > -#define __NR_umask           60 /* ok */
> > -#define __NR_chroot          61 /* ok */
> > -#define __NR_ustat           62 /* obsolete -> statfs64 */
> > -#define __NR_dup2            63 /* ok */
> > -#define __NR_getppid         64 /* ok */
> > -#define __NR_getpgrp         65 /* obsolete -> sys_getpgid */
> > -#define __NR_setsid          66 /* ok */
> > -#define __NR_sigaction               67 /* obsolete -> rt_sigaction */
> > -#define __NR_sgetmask                68 /* obsolete -> sys_rt_sigprocmask */
> > -#define __NR_ssetmask                69 /* obsolete ->sys_rt_sigprocmask */
> > -#define __NR_setreuid                70 /* ok */
> > -#define __NR_setregid                71 /* ok */
> > -#define __NR_sigsuspend              72 /* obsolete -> rt_sigsuspend */
> > -#define __NR_sigpending              73 /* obsolete -> sys_rt_sigpending */
> > -#define __NR_sethostname     74 /* ok */
> > -#define __NR_setrlimit               75 /* ok */
> > -#define __NR_getrlimit               76 /* ok Back compatible 2G limited rlimit */
> > -#define __NR_getrusage               77 /* ok */
> > -#define __NR_gettimeofday    78 /* ok */
> > -#define __NR_settimeofday    79 /* ok */
> > -#define __NR_getgroups               80 /* ok */
> > -#define __NR_setgroups               81 /* ok */
> > -#define __NR_select          82 /* obsolete -> sys_pselect6 */
> > -#define __NR_symlink         83 /* symlinkat */
> > -#define __NR_oldlstat                84 /* remove */
> > -#define __NR_readlink                85 /* obsolete -> sys_readlinkat */
> > -#define __NR_uselib          86 /* remove */
> > -#define __NR_swapon          87 /* ok */
> > -#define __NR_reboot          88 /* ok */
> > -#define __NR_readdir         89 /* remove ? */
> > -#define __NR_mmap            90 /* obsolete -> sys_mmap2 */
> > -#define __NR_munmap          91 /* ok - mmu and nommu */
> > -#define __NR_truncate                92 /* ok or truncate64 */
> > -#define __NR_ftruncate               93 /* ok or ftruncate64 */
> > -#define __NR_fchmod          94 /* ok */
> > -#define __NR_fchown          95 /* ok */
> > -#define __NR_getpriority     96 /* ok */
> > -#define __NR_setpriority     97 /* ok */
> > -#define __NR_profil          98 /* remove */
> > -#define __NR_statfs          99 /* ok or statfs64 */
> > -#define __NR_fstatfs         100  /* ok or fstatfs64 */
> > -#define __NR_ioperm          101 /* remove */
> > -#define __NR_socketcall              102 /* remove */
> > -#define __NR_syslog          103 /* ok */
> > -#define __NR_setitimer               104 /* ok */
> > -#define __NR_getitimer               105 /* ok */
> > -#define __NR_stat            106 /* remove */
> > -#define __NR_lstat           107 /* remove */
> > -#define __NR_fstat           108 /* remove */
> > -#define __NR_olduname                109 /* remove */
> > -#define __NR_iopl            110 /* remove */
> > -#define __NR_vhangup         111 /* ok */
> > -#define __NR_idle            112 /* remove */
> > -#define __NR_vm86old         113 /* remove */
> > -#define __NR_wait4           114 /* obsolete -> waitid */
> > -#define __NR_swapoff         115 /* ok */
> > -#define __NR_sysinfo         116 /* ok */
> > -#define __NR_ipc             117 /* remove - direct call */
> > -#define __NR_fsync           118 /* ok */
> > -#define __NR_sigreturn               119 /* obsolete -> sys_rt_sigreturn */
> > -#define __NR_clone           120 /* ok */
> > -#define __NR_setdomainname   121 /* ok */
> > -#define __NR_uname           122 /* remove */
> > -#define __NR_modify_ldt              123 /* remove */
> > -#define __NR_adjtimex                124 /* ok */
> > -#define __NR_mprotect                125 /* remove */
> > -#define __NR_sigprocmask     126 /* obsolete -> sys_rt_sigprocmask */
> > -#define __NR_create_module   127 /* remove */
> > -#define __NR_init_module     128 /* ok */
> > -#define __NR_delete_module   129 /* ok */
> > -#define __NR_get_kernel_syms 130 /* remove */
> > -#define __NR_quotactl                131 /* ok */
> > -#define __NR_getpgid         132 /* ok */
> > -#define __NR_fchdir          133 /* ok */
> > -#define __NR_bdflush         134 /* remove */
> > -#define __NR_sysfs           135 /* needed for busybox */
> > -#define __NR_personality     136 /* ok */
> > -#define __NR_afs_syscall     137 /* Syscall for Andrew File System */
> > -#define __NR_setfsuid                138 /* ok */
> > -#define __NR_setfsgid                139 /* ok */
> > -#define __NR__llseek         140 /* remove only lseek */
> > -#define __NR_getdents                141 /* ok or getdents64 */
> > -#define __NR__newselect              142 /* remove */
> > -#define __NR_flock           143 /* ok */
> > -#define __NR_msync           144 /* remove */
> > -#define __NR_readv           145 /* ok */
> > -#define __NR_writev          146 /* ok */
> > -#define __NR_getsid          147 /* ok */
> > -#define __NR_fdatasync               148 /* ok */
> > -#define __NR__sysctl         149 /* remove */
> > -#define __NR_mlock           150 /* ok - nommu or mmu */
> > -#define __NR_munlock         151 /* ok - nommu or mmu */
> > -#define __NR_mlockall                152 /* ok - nommu or mmu */
> > -#define __NR_munlockall              153 /* ok - nommu or mmu */
> > -#define __NR_sched_setparam          154 /* ok */
> > -#define __NR_sched_getparam          155 /* ok */
> > -#define __NR_sched_setscheduler              156 /* ok */
> > -#define __NR_sched_getscheduler              157 /* ok */
> > -#define __NR_sched_yield             158 /* ok */
> > -#define __NR_sched_get_priority_max  159 /* ok */
> > -#define __NR_sched_get_priority_min  160 /* ok */
> > -#define __NR_sched_rr_get_interval   161 /* ok */
> > -#define __NR_nanosleep               162 /* ok */
> > -#define __NR_mremap          163 /* ok - nommu or mmu */
> > -#define __NR_setresuid               164 /* ok */
> > -#define __NR_getresuid               165 /* ok */
> > -#define __NR_vm86            166 /* remove */
> > -#define __NR_query_module    167 /* ok */
> > -#define __NR_poll            168 /* obsolete -> sys_ppoll */
> > -#define __NR_nfsservctl              169 /* ok */
> > -#define __NR_setresgid               170 /* ok */
> > -#define __NR_getresgid               171 /* ok */
> > -#define __NR_prctl           172 /* ok */
> > -#define __NR_rt_sigreturn    173 /* ok */
> > -#define __NR_rt_sigaction    174 /* ok */
> > -#define __NR_rt_sigprocmask  175 /* ok */
> > -#define __NR_rt_sigpending   176 /* ok */
> > -#define __NR_rt_sigtimedwait 177 /* ok */
> > -#define __NR_rt_sigqueueinfo 178 /* ok */
> > -#define __NR_rt_sigsuspend   179 /* ok */
> > -#define __NR_pread64         180 /* ok */
> > -#define __NR_pwrite64                181 /* ok */
> > -#define __NR_chown           182 /* obsolete -> fchownat */
> > -#define __NR_getcwd          183 /* ok */
> > -#define __NR_capget          184 /* ok */
> > -#define __NR_capset          185 /* ok */
> > -#define __NR_sigaltstack     186 /* remove */
> > -#define __NR_sendfile                187 /* ok -> exist 64bit version*/
> > -#define __NR_getpmsg         188 /* remove */
> > -/* remove - some people actually want streams */
> > -#define __NR_putpmsg         189
> > -/* for noMMU - group with clone -> maybe remove */
> > -#define __NR_vfork           190
> > -#define __NR_ugetrlimit              191 /* remove - SuS compliant getrlimit */
> > -#define __NR_mmap2           192 /* ok */
> > -#define __NR_truncate64              193 /* ok */
> > -#define __NR_ftruncate64     194 /* ok */
> > -#define __NR_stat64          195 /* remove _ARCH_WANT_STAT64 */
> > -#define __NR_lstat64         196 /* remove _ARCH_WANT_STAT64 */
> > -#define __NR_fstat64         197 /* remove _ARCH_WANT_STAT64 */
> > -#define __NR_lchown32                198 /* ok - without 32 */
> > -#define __NR_getuid32                199 /* ok - without 32 */
> > -#define __NR_getgid32                200 /* ok - without 32 */
> > -#define __NR_geteuid32               201 /* ok - without 32 */
> > -#define __NR_getegid32               202 /* ok - without 32 */
> > -#define __NR_setreuid32              203 /* ok - without 32 */
> > -#define __NR_setregid32              204 /* ok - without 32 */
> > -#define __NR_getgroups32     205 /* ok - without 32 */
> > -#define __NR_setgroups32     206 /* ok - without 32 */
> > -#define __NR_fchown32                207 /* ok - without 32 */
> > -#define __NR_setresuid32     208 /* ok - without 32 */
> > -#define __NR_getresuid32     209 /* ok - without 32 */
> > -#define __NR_setresgid32     210 /* ok - without 32 */
> > -#define __NR_getresgid32     211 /* ok - without 32 */
> > -#define __NR_chown32         212 /* ok - without 32 -obsolete -> fchownat */
> > -#define __NR_setuid32                213 /* ok - without 32 */
> > -#define __NR_setgid32                214 /* ok - without 32 */
> > -#define __NR_setfsuid32              215 /* ok - without 32 */
> > -#define __NR_setfsgid32              216 /* ok - without 32 */
> > -#define __NR_pivot_root              217 /* ok */
> > -#define __NR_mincore         218 /* ok */
> > -#define __NR_madvise         219 /* ok */
> > -#define __NR_getdents64              220 /* ok */
> > -#define __NR_fcntl64         221 /* ok */
> > -/* 223 is unused */
> > -#define __NR_gettid          224 /* ok */
> > -#define __NR_readahead               225 /* ok */
> > -#define __NR_setxattr                226 /* ok */
> > -#define __NR_lsetxattr               227 /* ok */
> > -#define __NR_fsetxattr               228 /* ok */
> > -#define __NR_getxattr                229 /* ok */
> > -#define __NR_lgetxattr               230 /* ok */
> > -#define __NR_fgetxattr               231 /* ok */
> > -#define __NR_listxattr               232 /* ok */
> > -#define __NR_llistxattr              233 /* ok */
> > -#define __NR_flistxattr              234 /* ok */
> > -#define __NR_removexattr     235 /* ok */
> > -#define __NR_lremovexattr    236 /* ok */
> > -#define __NR_fremovexattr    237 /* ok */
> > -#define __NR_tkill           238 /* ok */
> > -#define __NR_sendfile64              239 /* ok */
> > -#define __NR_futex           240 /* ok */
> > -#define __NR_sched_setaffinity       241 /* ok */
> > -#define __NR_sched_getaffinity       242 /* ok */
> > -#define __NR_set_thread_area 243 /* remove */
> > -#define __NR_get_thread_area 244 /* remove */
> > -#define __NR_io_setup                245 /* ok */
> > -#define __NR_io_destroy              246 /* ok */
> > -#define __NR_io_getevents    247 /* ok */
> > -#define __NR_io_submit               248 /* ok */
> > -#define __NR_io_cancel               249 /* ok */
> > -#define __NR_fadvise64               250 /* remove -> sys_fadvise64_64 */
> > -/* 251 is available for reuse (was briefly sys_set_zone_reclaim) */
> > -#define __NR_exit_group              252 /* ok */
> > -#define __NR_lookup_dcookie  253 /* ok */
> > -#define __NR_epoll_create    254 /* ok */
> > -#define __NR_epoll_ctl               255 /* ok */
> > -#define __NR_epoll_wait              256 /* obsolete -> sys_epoll_pwait */
> > -#define __NR_remap_file_pages        257 /* only for mmu */
> > -#define __NR_set_tid_address 258 /* ok */
> > -#define __NR_timer_create    259 /* ok */
> > -#define __NR_timer_settime   (__NR_timer_create+1) /* 260 */ /* ok */
> > -#define __NR_timer_gettime   (__NR_timer_create+2) /* 261 */ /* ok */
> > -#define __NR_timer_getoverrun        (__NR_timer_create+3) /* 262 */ /* ok */
> > -#define __NR_timer_delete    (__NR_timer_create+4) /* 263 */ /* ok */
> > -#define __NR_clock_settime   (__NR_timer_create+5) /* 264 */ /* ok */
> > -#define __NR_clock_gettime   (__NR_timer_create+6) /* 265 */ /* ok */
> > -#define __NR_clock_getres    (__NR_timer_create+7) /* 266 */ /* ok */
> > -#define __NR_clock_nanosleep (__NR_timer_create+8) /* 267 */ /* ok */
> > -#define __NR_statfs64                268 /* ok */
> > -#define __NR_fstatfs64               269 /* ok */
> > -#define __NR_tgkill          270 /* ok */
> > -#define __NR_utimes          271 /* obsolete -> sys_futimesat */
> > -#define __NR_fadvise64_64    272 /* ok */
> > -#define __NR_vserver         273 /* ok */
> > -#define __NR_mbind           274 /* only for mmu */
> > -#define __NR_get_mempolicy   275 /* only for mmu */
> > -#define __NR_set_mempolicy   276 /* only for mmu */
> > -#define __NR_mq_open         277 /* ok */
> > -#define __NR_mq_unlink               (__NR_mq_open+1) /* 278 */ /* ok */
> > -#define __NR_mq_timedsend    (__NR_mq_open+2) /* 279 */ /* ok */
> > -#define __NR_mq_timedreceive (__NR_mq_open+3) /* 280 */ /* ok */
> > -#define __NR_mq_notify               (__NR_mq_open+4) /* 281 */ /* ok */
> > -#define __NR_mq_getsetattr   (__NR_mq_open+5) /* 282 */ /* ok */
> > -#define __NR_kexec_load              283 /* ok */
> > -#define __NR_waitid          284 /* ok */
> > -/* #define __NR_sys_setaltroot       285 */
> > -#define __NR_add_key         286 /* ok */
> > -#define __NR_request_key     287 /* ok */
> > -#define __NR_keyctl          288 /* ok */
> > -#define __NR_ioprio_set              289 /* ok */
> > -#define __NR_ioprio_get              290 /* ok */
> > -#define __NR_inotify_init    291 /* ok */
> > -#define __NR_inotify_add_watch       292 /* ok */
> > -#define __NR_inotify_rm_watch        293 /* ok */
> > -#define __NR_migrate_pages   294 /* mmu */
> > -#define __NR_openat          295 /* ok */
> > -#define __NR_mkdirat         296 /* ok */
> > -#define __NR_mknodat         297 /* ok */
> > -#define __NR_fchownat                298 /* ok */
> > -#define __NR_futimesat               299 /* obsolete -> sys_utimesat */
> > -#define __NR_fstatat64               300 /* stat64 */
> > -#define __NR_unlinkat                301 /* ok */
> > -#define __NR_renameat                302 /* ok */
> > -#define __NR_linkat          303 /* ok */
> > -#define __NR_symlinkat               304 /* ok */
> > -#define __NR_readlinkat              305 /* ok */
> > -#define __NR_fchmodat                306 /* ok */
> > -#define __NR_faccessat               307 /* ok */
> > -#define __NR_pselect6                308 /* ok */
> > -#define __NR_ppoll           309 /* ok */
> > -#define __NR_unshare         310 /* ok */
> > -#define __NR_set_robust_list 311 /* ok */
> > -#define __NR_get_robust_list 312 /* ok */
> > -#define __NR_splice          313 /* ok */
> > -#define __NR_sync_file_range 314 /* ok */
> > -#define __NR_tee             315 /* ok */
> > -#define __NR_vmsplice                316 /* ok */
> > -#define __NR_move_pages              317 /* mmu */
> > -#define __NR_getcpu          318 /* ok */
> > -#define __NR_epoll_pwait     319 /* ok */
> > -#define __NR_utimensat               320 /* ok */
> > -#define __NR_signalfd                321 /* ok */
> > -#define __NR_timerfd_create  322 /* ok */
> > -#define __NR_eventfd         323 /* ok */
> > -#define __NR_fallocate               324 /* ok */
> > -#define __NR_semtimedop              325 /* ok - semaphore group */
> > -#define __NR_timerfd_settime 326 /* ok */
> > -#define __NR_timerfd_gettime 327 /* ok */
> > -/* sysv ipc syscalls */
> > -#define __NR_semctl          328 /* ok */
> > -#define __NR_semget          329 /* ok */
> > -#define __NR_semop           330 /* ok */
> > -#define __NR_msgctl          331 /* ok */
> > -#define __NR_msgget          332 /* ok */
> > -#define __NR_msgrcv          333 /* ok */
> > -#define __NR_msgsnd          334 /* ok */
> > -#define __NR_shmat           335 /* ok */
> > -#define __NR_shmctl          336 /* ok */
> > -#define __NR_shmdt           337 /* ok */
> > -#define __NR_shmget          338 /* ok */
> > -
> > -
> > -#define __NR_signalfd4               339 /* new */
> > -#define __NR_eventfd2                340 /* new */
> > -#define __NR_epoll_create1   341 /* new */
> > -#define __NR_dup3            342 /* new */
> > -#define __NR_pipe2           343 /* new */
> > -#define __NR_inotify_init1   344 /* new */
> > -#define __NR_socket          345 /* new */
> > -#define __NR_socketpair              346 /* new */
> > -#define __NR_bind            347 /* new */
> > -#define __NR_listen          348 /* new */
> > -#define __NR_accept          349 /* new */
> > -#define __NR_connect         350 /* new */
> > -#define __NR_getsockname     351 /* new */
> > -#define __NR_getpeername     352 /* new */
> > -#define __NR_sendto          353 /* new */
> > -#define __NR_send            354 /* new */
> > -#define __NR_recvfrom                355 /* new */
> > -#define __NR_recv            356 /* new */
> > -#define __NR_setsockopt              357 /* new */
> > -#define __NR_getsockopt              358 /* new */
> > -#define __NR_shutdown                359 /* new */
> > -#define __NR_sendmsg         360 /* new */
> > -#define __NR_recvmsg         361 /* new */
> > -#define __NR_accept4         362 /* new */
> > -#define __NR_preadv          363 /* new */
> > -#define __NR_pwritev         364 /* new */
> > -#define __NR_rt_tgsigqueueinfo       365 /* new */
> > -#define __NR_perf_event_open 366 /* new */
> > -#define __NR_recvmmsg                367 /* new */
> > -#define __NR_fanotify_init   368
> > -#define __NR_fanotify_mark   369
> > -#define __NR_prlimit64               370
> > -#define __NR_name_to_handle_at       371
> > -#define __NR_open_by_handle_at       372
> > -#define __NR_clock_adjtime   373
> > -#define __NR_syncfs          374
> > -#define __NR_setns           375
> > -#define __NR_sendmmsg                376
> > -#define __NR_process_vm_readv        377
> > -#define __NR_process_vm_writev       378
> > -#define __NR_kcmp            379
> > -#define __NR_finit_module    380
> > -#define __NR_sched_setattr   381
> > -#define __NR_sched_getattr   382
> > -#define __NR_renameat2               383
> > -#define __NR_seccomp         384
> > -#define __NR_getrandom               385
> > -#define __NR_memfd_create    386
> > -#define __NR_bpf             387
> > -#define __NR_execveat                388
> > -#define __NR_userfaultfd     389
> > -#define __NR_membarrier              390
> > -#define __NR_mlock2          391
> > -#define __NR_copy_file_range 392
> > -#define __NR_preadv2         393
> > -#define __NR_pwritev2                394
> > -#define __NR_pkey_mprotect   395
> > -#define __NR_pkey_alloc              396
> > -#define __NR_pkey_free               397
> > -#define __NR_statx           398
> > -#define __NR_io_pgetevents   399
> > -#define __NR_rseq            400
> > -
> > -#ifdef __KERNEL__
> > -#define __NR_syscalls         401
> > -#endif
> > +#include <asm/unistd_32.h>
> >
> >  #endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */
> > diff --git a/arch/microblaze/kernel/syscall_table.S b/arch/microblaze/kernel/syscall_table.S
> > index 6ab6505..ce00664 100644
> > --- a/arch/microblaze/kernel/syscall_table.S
> > +++ b/arch/microblaze/kernel/syscall_table.S
> > @@ -1,404 +1,6 @@
> >  /* SPDX-License-Identifier: GPL-2.0 */
> > +
> > +#define __SYSCALL(nr, entry, nargs) .long entry
> >  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_lchown
> > -     .long sys_ni_syscall            /* old break syscall holder */
> > -     .long sys_ni_syscall            /* old stat */
> > -     .long sys_lseek
> > -     .long sys_getpid                /* 20 */
> > -     .long sys_mount
> > -     .long sys_oldumount
> > -     .long sys_setuid
> > -     .long sys_getuid
> > -     .long sys_stime                 /* 25 */
> > -     .long sys_ptrace
> > -     .long sys_alarm
> > -     .long sys_ni_syscall            /* oldfstat */
> > -     .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_setgid
> > -     .long sys_getgid
> > -     .long sys_signal
> > -     .long sys_geteuid
> > -     .long sys_getegid               /* 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            /* olduname */
> > -     .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_ni_syscall            /* sys_sigaction */
> > -     .long sys_sgetmask
> > -     .long sys_ssetmask
> > -     .long sys_setreuid              /* 70 */
> > -     .long sys_setregid
> > -     .long sys_ni_syscall            /* sys_sigsuspend_wrapper */
> > -     .long sys_sigpending
> > -     .long sys_sethostname
> > -     .long sys_setrlimit             /* 75 */
> > -     .long sys_ni_syscall            /* old_getrlimit */
> > -     .long sys_getrusage
> > -     .long sys_gettimeofday
> > -     .long sys_settimeofday
> > -     .long sys_getgroups             /* 80 */
> > -     .long sys_setgroups
> > -     .long sys_ni_syscall            /* old_select */
> > -     .long sys_symlink
> > -     .long sys_ni_syscall            /* oldlstat */
> > -     .long sys_readlink              /* 85 */
> > -     .long sys_uselib
> > -     .long sys_swapon
> > -     .long sys_reboot
> > -     .long sys_ni_syscall            /* old_readdir */
> > -     .long sys_mmap                  /* 90 */ /* old_mmap */
> > -     .long sys_munmap
> > -     .long sys_truncate
> > -     .long sys_ftruncate
> > -     .long sys_fchmod
> > -     .long sys_fchown                /* 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 */
> > -     .long sys_socketcall
> > -     .long sys_syslog                /* operation with system console */
> > -     .long sys_setitimer
> > -     .long sys_getitimer             /* 105 */
> > -     .long sys_newstat
> > -     .long sys_newlstat
> > -     .long sys_newfstat
> > -     .long sys_ni_syscall            /* uname */
> > -     .long sys_ni_syscall            /* 110 */ /* iopl */
> > -     .long sys_vhangup
> > -     .long sys_ni_syscall            /* old "idle" system call */
> > -     .long sys_ni_syscall            /* old sys_vm86old */
> > -     .long sys_wait4
> > -     .long sys_swapoff               /* 115 */
> > -     .long sys_sysinfo
> > -     .long sys_ni_syscall            /* old sys_ipc */
> > -     .long sys_fsync
> > -     .long sys_ni_syscall            /* sys_sigreturn_wrapper */
> > -     .long sys_clone         /* 120 */
> > -     .long sys_setdomainname
> > -     .long sys_newuname
> > -     .long sys_ni_syscall            /* modify_ldt */
> > -     .long sys_adjtimex
> > -     .long sys_mprotect              /* 125: sys_mprotect */
> > -     .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            /* reserved for afs_syscall */
> > -     .long sys_setfsuid
> > -     .long sys_setfsgid
> > -     .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: sys_mlock */
> > -     .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_setresuid
> > -     .long sys_getresuid             /* 165 */
> > -     .long sys_ni_syscall            /* sys_vm86 */
> > -     .long sys_ni_syscall            /* Old sys_query_module */
> > -     .long sys_poll
> > -     .long sys_ni_syscall            /* old nfsservctl */
> > -     .long sys_setresgid             /* 170 */
> > -     .long sys_getresgid
> > -     .long sys_prctl
> > -     .long sys_rt_sigreturn_wrapper
> > -     .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_chown
> > -     .long sys_getcwd
> > -     .long sys_capget
> > -     .long sys_capset                /* 185 */
> > -     .long sys_ni_syscall            /* sigaltstack */
> > -     .long sys_sendfile
> > -     .long sys_ni_syscall            /* reserved for streams1 */
> > -     .long sys_ni_syscall            /* reserved for 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_lchown
> > -     .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_chown
> > -     .long sys_setuid
> > -     .long sys_setgid
> > -     .long sys_setfsuid              /* 215 */
> > -     .long sys_setfsgid
> > -     .long sys_pivot_root
> > -     .long sys_mincore
> > -     .long sys_madvise
> > -     .long sys_getdents64            /* 220 */
> > -     .long sys_fcntl64
> > -     .long sys_ni_syscall            /* reserved for TUX */
> > -     .long sys_ni_syscall
> > -     .long sys_gettid
> > -     .long sys_readahead             /* 225 */
> > -     .long sys_setxattr
> > -     .long sys_lsetxattr
> > -     .long sys_fsetxattr
> > -     .long sys_getxattr
> > -     .long sys_lgetxattr             /* 230 */
> > -     .long sys_fgetxattr
> > -     .long sys_listxattr
> > -     .long sys_llistxattr
> > -     .long sys_flistxattr
> > -     .long sys_removexattr           /* 235 */
> > -     .long sys_lremovexattr
> > -     .long sys_fremovexattr
> > -     .long sys_tkill
> > -     .long sys_sendfile64
> > -     .long sys_futex                 /* 240 */
> > -     .long sys_sched_setaffinity
> > -     .long sys_sched_getaffinity
> > -     .long sys_ni_syscall            /* set_thread_area */
> > -     .long sys_ni_syscall            /* get_thread_area */
> > -     .long sys_io_setup              /* 245 */
> > -     .long sys_io_destroy
> > -     .long sys_io_getevents
> > -     .long sys_io_submit
> > -     .long sys_io_cancel
> > -     .long sys_fadvise64             /* 250 */
> > -     .long sys_ni_syscall
> > -     .long sys_exit_group
> > -     .long sys_lookup_dcookie
> > -     .long sys_epoll_create
> > -     .long sys_epoll_ctl             /* 255 */
> > -     .long sys_epoll_wait
> > -     .long sys_remap_file_pages
> > -     .long sys_set_tid_address
> > -     .long sys_timer_create
> > -     .long sys_timer_settime         /* 260 */
> > -     .long sys_timer_gettime
> > -     .long sys_timer_getoverrun
> > -     .long sys_timer_delete
> > -     .long sys_clock_settime
> > -     .long sys_clock_gettime         /* 265 */
> > -     .long sys_clock_getres
> > -     .long sys_clock_nanosleep
> > -     .long sys_statfs64
> > -     .long sys_fstatfs64
> > -     .long sys_tgkill                /* 270 */
> > -     .long sys_utimes
> > -     .long sys_fadvise64_64
> > -     .long sys_ni_syscall            /* sys_vserver */
> > -     .long sys_mbind
> > -     .long sys_get_mempolicy
> > -     .long sys_set_mempolicy
> > -     .long sys_mq_open
> > -     .long sys_mq_unlink
> > -     .long sys_mq_timedsend
> > -     .long sys_mq_timedreceive       /* 280 */
> > -     .long sys_mq_notify
> > -     .long sys_mq_getsetattr
> > -     .long sys_kexec_load
> > -     .long sys_waitid
> > -     .long sys_ni_syscall            /* 285 */ /* available */
> > -     .long sys_add_key
> > -     .long sys_request_key
> > -     .long sys_keyctl
> > -     .long sys_ioprio_set
> > -     .long sys_ioprio_get            /* 290 */
> > -     .long sys_inotify_init
> > -     .long sys_inotify_add_watch
> > -     .long sys_inotify_rm_watch
> > -     .long sys_ni_syscall            /* sys_migrate_pages */
> > -     .long sys_openat        /* 295 */
> > -     .long sys_mkdirat
> > -     .long sys_mknodat
> > -     .long sys_fchownat
> > -     .long sys_futimesat
> > -     .long sys_fstatat64             /* 300 */
> > -     .long sys_unlinkat
> > -     .long sys_renameat
> > -     .long sys_linkat
> > -     .long sys_symlinkat
> > -     .long sys_readlinkat            /* 305 */
> > -     .long sys_fchmodat
> > -     .long sys_faccessat
> > -     .long sys_pselect6
> > -     .long sys_ppoll
> > -     .long sys_unshare               /* 310 */
> > -     .long sys_set_robust_list
> > -     .long sys_get_robust_list
> > -     .long sys_splice
> > -     .long sys_sync_file_range
> > -     .long sys_tee                   /* 315 */
> > -     .long sys_vmsplice
> > -     .long sys_move_pages
> > -     .long sys_getcpu
> > -     .long sys_epoll_pwait
> > -     .long sys_utimensat             /* 320 */
> > -     .long sys_signalfd
> > -     .long sys_timerfd_create
> > -     .long sys_eventfd
> > -     .long sys_fallocate
> > -     .long sys_semtimedop            /* 325 */
> > -     .long sys_timerfd_settime
> > -     .long sys_timerfd_gettime
> > -     .long sys_semctl
> > -     .long sys_semget
> > -     .long sys_semop                 /* 330 */
> > -     .long sys_msgctl
> > -     .long sys_msgget
> > -     .long sys_msgrcv
> > -     .long sys_msgsnd
> > -     .long sys_shmat                 /* 335 */
> > -     .long sys_shmctl
> > -     .long sys_shmdt
> > -     .long sys_shmget
> > -     .long sys_signalfd4     /* new syscall */
> > -     .long sys_eventfd2              /* 340 */
> > -     .long sys_epoll_create1
> > -     .long sys_dup3
> > -     .long sys_pipe2
> > -     .long sys_inotify_init1
> > -     .long sys_socket                /* 345 */
> > -     .long sys_socketpair
> > -     .long sys_bind
> > -     .long sys_listen
> > -     .long sys_accept
> > -     .long sys_connect               /* 350 */
> > -     .long sys_getsockname
> > -     .long sys_getpeername
> > -     .long sys_sendto
> > -     .long sys_send
> > -     .long sys_recvfrom              /* 355 */
> > -     .long sys_recv
> > -     .long sys_setsockopt
> > -     .long sys_getsockopt
> > -     .long sys_shutdown
> > -     .long sys_sendmsg               /* 360 */
> > -     .long sys_recvmsg
> > -     .long sys_accept4
> > -     .long sys_preadv
> > -     .long sys_pwritev
> > -     .long sys_rt_tgsigqueueinfo     /* 365 */
> > -     .long sys_perf_event_open
> > -     .long sys_recvmmsg
> > -     .long sys_fanotify_init
> > -     .long sys_fanotify_mark
> > -     .long sys_prlimit64     /* 370 */
> > -     .long sys_name_to_handle_at
> > -     .long sys_open_by_handle_at
> > -     .long sys_clock_adjtime
> > -     .long sys_syncfs
> > -     .long sys_setns                 /* 375 */
> > -     .long sys_sendmmsg
> > -     .long sys_process_vm_readv
> > -     .long sys_process_vm_writev
> > -     .long sys_kcmp
> > -     .long sys_finit_module          /* 380 */
> > -     .long sys_sched_setattr
> > -     .long sys_sched_getattr
> > -     .long sys_renameat2
> > -     .long sys_seccomp
> > -     .long sys_getrandom             /* 385 */
> > -     .long sys_memfd_create
> > -     .long sys_bpf
> > -     .long sys_execveat
> > -     .long sys_userfaultfd
> > -     .long sys_membarrier            /* 390 */
> > -     .long sys_mlock2
> > -     .long sys_copy_file_range
> > -     .long sys_preadv2
> > -     .long sys_pwritev2
> > -     .long sys_pkey_mprotect         /* 395 */
> > -     .long sys_pkey_alloc
> > -     .long sys_pkey_free
> > -     .long sys_statx
> > -     .long sys_io_pgetevents
> > -     .long sys_rseq
> > +#include <asm/syscall_table.h>
> > +#undef __SYSCALL
> >
>
> I still don't think this is correct.
>
> I have done these steps
>
> make mrproper
> make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move
> Applied 1/3
> make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move
> Applied 2/3
> make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move
> Applied 3/3
> make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move
>
> And compare all these versions. Till 2/3 all is fine but when 3/3 is
> applied
>
> include/asm/unistd.h contains
> #include <asm/unistd_32.h>
>
> Then include/asm/unistd_32.h contains
> #include <asm-generic/unistd_32.h>
> which is different syscalls table.
>
> I didn't play with it for a long time but removing generic unistd_32.h
> is fixing it. Please take a look.

Sure, I'll check and update you ASAP.

>
> diff --git a/arch/microblaze/include/uapi/asm/Kbuild
> b/arch/microblaze/include/uapi/asm/Kbuild
> index cda864f4b62e..2c6a6bffea32 100644
> --- a/arch/microblaze/include/uapi/asm/Kbuild
> +++ b/arch/microblaze/include/uapi/asm/Kbuild
> @@ -28,4 +28,3 @@ generic-y += termbits.h
>  generic-y += termios.h
>  generic-y += types.h
>  generic-y += ucontext.h
> -generic-y += unistd_32.h

AFAIK, If I apply the above fix; the generated file - unistd_32.h will
get removed.
No longer present in arch/microblaze/include/generated/uapi/asm.

Thanks
Firoz

>
> Thanks,
> Michal
>
> --
> Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
> w: www.monstr.eu p: +42-0-721842854
> Maintainer of Linux kernel - Xilinx Microblaze
> Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
> U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP SoCs
>
>

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

* Re: [PATCH v3 3/3] microblaze: generate uapi header and system call table files
  2018-11-05 10:26     ` Firoz Khan
@ 2018-11-08 13:44       ` Arnd Bergmann
  2018-11-08 13:50         ` Michal Simek
  0 siblings, 1 reply; 9+ messages in thread
From: Arnd Bergmann @ 2018-11-08 13:44 UTC (permalink / raw)
  To: Firoz Khan
  Cc: Michal Simek, gregkh, Philippe Ombredanne, Thomas Gleixner,
	Kate Stewart, y2038 Mailman List, Linux Kernel Mailing List,
	linux-arch, Deepa Dinamani, Marcin Juszkiewicz

On Mon, Nov 5, 2018 at 11:26 AM Firoz Khan <firoz.khan@linaro.org> wrote:
> On Mon, 5 Nov 2018 at 14:46, Michal Simek <monstr@monstr.eu> wrote:
> > On 26. 10. 18 7:09, Firoz Khan wrote:

> > > -     .long sys_rseq
> > > +#include <asm/syscall_table.h>
> > > +#undef __SYSCALL
> > >
> >
> > I still don't think this is correct.
> >
> > I have done these steps
> >
> > make mrproper
> > make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move
> > Applied 1/3
> > make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move
> > Applied 2/3
> > make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move
> > Applied 3/3
> > make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move
> >
> > And compare all these versions. Till 2/3 all is fine but when 3/3 is
> > applied
> >
> > include/asm/unistd.h contains
> > #include <asm/unistd_32.h>
> >
> > Then include/asm/unistd_32.h contains
> > #include <asm-generic/unistd_32.h>
> > which is different syscalls table.
> >
> > I didn't play with it for a long time but removing generic unistd_32.h
> > is fixing it. Please take a look.
>
> Sure, I'll check and update you ASAP.
>
> >
> > diff --git a/arch/microblaze/include/uapi/asm/Kbuild
> > b/arch/microblaze/include/uapi/asm/Kbuild
> > index cda864f4b62e..2c6a6bffea32 100644
> > --- a/arch/microblaze/include/uapi/asm/Kbuild
> > +++ b/arch/microblaze/include/uapi/asm/Kbuild
> > @@ -28,4 +28,3 @@ generic-y += termbits.h
> >  generic-y += termios.h
> >  generic-y += types.h
> >  generic-y += ucontext.h
> > -generic-y += unistd_32.h
>
> AFAIK, If I apply the above fix; the generated file - unistd_32.h will
> get removed.
> No longer present in arch/microblaze/include/generated/uapi/asm.

It certainly must be 'generated-y', not 'generic-y', since you are
generating an architecture specific file, not taking the one
from asm-generic. I think this was correct in an earlier version.

       Arnd

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

* Re: [PATCH v3 3/3] microblaze: generate uapi header and system call table files
  2018-11-08 13:44       ` Arnd Bergmann
@ 2018-11-08 13:50         ` Michal Simek
  0 siblings, 0 replies; 9+ messages in thread
From: Michal Simek @ 2018-11-08 13:50 UTC (permalink / raw)
  To: Arnd Bergmann, Firoz Khan
  Cc: gregkh, Philippe Ombredanne, Thomas Gleixner, Kate Stewart,
	y2038 Mailman List, Linux Kernel Mailing List, linux-arch,
	Deepa Dinamani, Marcin Juszkiewicz


[-- Attachment #1.1: Type: text/plain, Size: 2433 bytes --]

On 08. 11. 18 14:44, Arnd Bergmann wrote:
> On Mon, Nov 5, 2018 at 11:26 AM Firoz Khan <firoz.khan@linaro.org> wrote:
>> On Mon, 5 Nov 2018 at 14:46, Michal Simek <monstr@monstr.eu> wrote:
>>> On 26. 10. 18 7:09, Firoz Khan wrote:
> 
>>>> -     .long sys_rseq
>>>> +#include <asm/syscall_table.h>
>>>> +#undef __SYSCALL
>>>>
>>>
>>> I still don't think this is correct.
>>>
>>> I have done these steps
>>>
>>> make mrproper
>>> make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move
>>> Applied 1/3
>>> make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move
>>> Applied 2/3
>>> make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move
>>> Applied 3/3
>>> make ARCH=microblaze headers_install INSTALL_HDR_PATH=/tmp/ && move
>>>
>>> And compare all these versions. Till 2/3 all is fine but when 3/3 is
>>> applied
>>>
>>> include/asm/unistd.h contains
>>> #include <asm/unistd_32.h>
>>>
>>> Then include/asm/unistd_32.h contains
>>> #include <asm-generic/unistd_32.h>
>>> which is different syscalls table.
>>>
>>> I didn't play with it for a long time but removing generic unistd_32.h
>>> is fixing it. Please take a look.
>>
>> Sure, I'll check and update you ASAP.
>>
>>>
>>> diff --git a/arch/microblaze/include/uapi/asm/Kbuild
>>> b/arch/microblaze/include/uapi/asm/Kbuild
>>> index cda864f4b62e..2c6a6bffea32 100644
>>> --- a/arch/microblaze/include/uapi/asm/Kbuild
>>> +++ b/arch/microblaze/include/uapi/asm/Kbuild
>>> @@ -28,4 +28,3 @@ generic-y += termbits.h
>>>  generic-y += termios.h
>>>  generic-y += types.h
>>>  generic-y += ucontext.h
>>> -generic-y += unistd_32.h
>>
>> AFAIK, If I apply the above fix; the generated file - unistd_32.h will
>> get removed.
>> No longer present in arch/microblaze/include/generated/uapi/asm.
> 
> It certainly must be 'generated-y', not 'generic-y', since you are
> generating an architecture specific file, not taking the one
> from asm-generic. I think this was correct in an earlier version.

yep. It was correct in v1. It has changed in v2.

I have retested and it looks good with that.

Thanks,
Michal


-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP SoCs



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

end of thread, other threads:[~2018-11-08 13:50 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-26  5:09 [PATCH v3 0/3] microblaze: system call table generation support Firoz Khan
2018-10-26  5:09 ` [PATCH v3 1/3] microblaze: move __NR_syscalls macro from asm/unistd.h Firoz Khan
2018-10-26  5:09 ` [PATCH v3 2/3] microblaze: add system call table generation support Firoz Khan
2018-10-26  5:09 ` [PATCH v3 3/3] microblaze: generate uapi header and system call table files Firoz Khan
2018-11-05  9:16   ` Michal Simek
2018-11-05 10:26     ` Firoz Khan
2018-11-08 13:44       ` Arnd Bergmann
2018-11-08 13:50         ` Michal Simek
2018-11-05  8:18 ` [PATCH v3 0/3] microblaze: system call table generation support Michal Simek

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