2019-01-02 16:55:50

by Firoz Khan

[permalink] [raw]
Subject: [PATCH 0/2] microblaze: Unify the system call scripts

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

This patch depends on;
https://lore.kernel.org/lkml/[email protected]/

Firoz Khan (2):
microblaze: remove nargs from __SYSCALL
microblaze: generate uapi header and system call table files

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

--
1.9.1



2019-01-02 16:34:55

by Firoz Khan

[permalink] [raw]
Subject: [PATCH 2/2] microblaze: generate uapi header and system call table files

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

This patch will generate unistd_32.h and syscall_table.h
files by the syscall table generation script invoked by
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 <[email protected]>
---
arch/microblaze/kernel/syscalls/Makefile | 11 ++++++--
arch/microblaze/kernel/syscalls/syscallhdr.sh | 36 ---------------------------
arch/microblaze/kernel/syscalls/syscalltbl.sh | 32 ------------------------
3 files changed, 9 insertions(+), 70 deletions(-)
delete mode 100644 arch/microblaze/kernel/syscalls/syscallhdr.sh
delete mode 100644 arch/microblaze/kernel/syscalls/syscalltbl.sh

diff --git a/arch/microblaze/kernel/syscalls/Makefile b/arch/microblaze/kernel/syscalls/Makefile
index 659faef..75c7421 100644
--- a/arch/microblaze/kernel/syscalls/Makefile
+++ b/arch/microblaze/kernel/syscalls/Makefile
@@ -6,8 +6,9 @@ _dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \
$(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')

syscall := $(srctree)/$(src)/syscall.tbl
-syshdr := $(srctree)/$(src)/syscallhdr.sh
-systbl := $(srctree)/$(src)/syscalltbl.sh
+syshdr := $(srctree)/scripts/syscallhdr.sh
+sysnr := $(srctree)/scripts/syscallnr.sh
+systbl := $(srctree)/scripts/syscalltbl.sh

quiet_cmd_syshdr = SYSHDR $@
cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@' \
@@ -15,6 +16,12 @@ quiet_cmd_syshdr = SYSHDR $@
'$(syshdr_pfx_$(basetarget))' \
'$(syshdr_offset_$(basetarget))'

+quiet_cmd_sysnr = SYSNR $@
+ cmd_sysnr = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@' \
+ '$(sysnr_abis_$(basetarget))' \
+ '$(sysnr_pfx_$(basetarget))' \
+ '$(sysnr_offset_$(basetarget))'
+
quiet_cmd_systbl = SYSTBL $@
cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@' \
'$(systbl_abis_$(basetarget))' \
diff --git a/arch/microblaze/kernel/syscalls/syscallhdr.sh b/arch/microblaze/kernel/syscalls/syscallhdr.sh
deleted file mode 100644
index 2e9062a..0000000
--- a/arch/microblaze/kernel/syscalls/syscallhdr.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-# SPDX-License-Identifier: GPL-2.0
-
-in="$1"
-out="$2"
-my_abis=`echo "($3)" | tr ',' '|'`
-prefix="$4"
-offset="$5"
-
-fileguard=_UAPI_ASM_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
deleted file mode 100644
index 904b8e6..0000000
--- a/arch/microblaze/kernel/syscalls/syscalltbl.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-# SPDX-License-Identifier: GPL-2.0
-
-in="$1"
-out="$2"
-my_abis=`echo "($3)" | tr ',' '|'`
-my_abi="$4"
-offset="$5"
-
-emit() {
- t_nxt="$1"
- t_nr="$2"
- t_entry="$3"
-
- while [ $t_nxt -lt $t_nr ]; do
- printf "__SYSCALL(%s,sys_ni_syscall)\n" "${t_nxt}"
- t_nxt=$((t_nxt+1))
- done
- printf "__SYSCALL(%s,%s)\n" "${t_nxt}" "${t_entry}"
-}
-
-grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
- nxt=0
- if [ -z "$offset" ]; then
- offset=0
- fi
-
- while read nr abi name entry ; do
- emit $((nxt+offset)) $((nr+offset)) $entry
- nxt=$((nr+1))
- done
-) > "$out"
--
1.9.1


2019-01-02 16:55:50

by Firoz Khan

[permalink] [raw]
Subject: [PATCH 1/2] microblaze: remove nargs from __SYSCALL

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

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

Signed-off-by: Firoz Khan <[email protected]>
---
arch/microblaze/kernel/syscall_table.S | 2 +-
arch/microblaze/kernel/syscalls/syscalltbl.sh | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/microblaze/kernel/syscall_table.S b/arch/microblaze/kernel/syscall_table.S
index ce00664..91ade44 100644
--- a/arch/microblaze/kernel/syscall_table.S
+++ b/arch/microblaze/kernel/syscall_table.S
@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0 */

-#define __SYSCALL(nr, entry, nargs) .long entry
+#define __SYSCALL(nr, entry) .long entry
ENTRY(sys_call_table)
#include <asm/syscall_table.h>
#undef __SYSCALL
diff --git a/arch/microblaze/kernel/syscalls/syscalltbl.sh b/arch/microblaze/kernel/syscalls/syscalltbl.sh
index 85d78d9..904b8e6 100644
--- a/arch/microblaze/kernel/syscalls/syscalltbl.sh
+++ b/arch/microblaze/kernel/syscalls/syscalltbl.sh
@@ -13,10 +13,10 @@ emit() {
t_entry="$3"

while [ $t_nxt -lt $t_nr ]; do
- printf "__SYSCALL(%s, sys_ni_syscall, )\n" "${t_nxt}"
+ printf "__SYSCALL(%s,sys_ni_syscall)\n" "${t_nxt}"
t_nxt=$((t_nxt+1))
done
- printf "__SYSCALL(%s, %s, )\n" "${t_nxt}" "${t_entry}"
+ printf "__SYSCALL(%s,%s)\n" "${t_nxt}" "${t_entry}"
}

grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
--
1.9.1


2019-01-03 16:14:33

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH 0/2] microblaze: Unify the system call scripts

On 02. 01. 19 16:12, Firoz Khan wrote:
> System call table generation support is provided for
> alpha, ia64, m68k, microblaze, mips, parisc, powerpc,
> sh, sparc and xtensa architectures. The implementat-
> ions are almost similar across all the above archte-
> ctures. In order to reduce the source code across all
> the above architectures, create common ".sh" files and
> keep it in the common directory, script/. This will
> be a generic scripts which can use for all the above
> architectures.
>
> This patch depends on;
> https://lore.kernel.org/lkml/[email protected]/
>
> Firoz Khan (2):
> microblaze: remove nargs from __SYSCALL
> microblaze: generate uapi header and system call table files
>
> arch/microblaze/kernel/syscall_table.S | 2 +-
> arch/microblaze/kernel/syscalls/Makefile | 11 ++++++--
> arch/microblaze/kernel/syscalls/syscallhdr.sh | 36 ---------------------------
> arch/microblaze/kernel/syscalls/syscalltbl.sh | 32 ------------------------
> 4 files changed, 10 insertions(+), 71 deletions(-)
> delete mode 100644 arch/microblaze/kernel/syscalls/syscallhdr.sh
> delete mode 100644 arch/microblaze/kernel/syscalls/syscalltbl.sh
>

Looks good. Will keep this in my queue till depending patch is applied.

M

--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://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/Versal SoCs



Attachments:
signature.asc (205.00 B)
OpenPGP digital signature

2019-01-03 16:46:20

by Firoz Khan

[permalink] [raw]
Subject: Re: [PATCH 0/2] microblaze: Unify the system call scripts

Hi Michal,

On Thu, 3 Jan 2019 at 18:00, Michal Simek <[email protected]> wrote:
> > arch/microblaze/kernel/syscall_table.S | 2 +-
> > arch/microblaze/kernel/syscalls/Makefile | 11 ++++++--
> > arch/microblaze/kernel/syscalls/syscallhdr.sh | 36 ---------------------------
> > arch/microblaze/kernel/syscalls/syscalltbl.sh | 32 ------------------------
> > 4 files changed, 10 insertions(+), 71 deletions(-)
> > delete mode 100644 arch/microblaze/kernel/syscalls/syscallhdr.sh
> > delete mode 100644 arch/microblaze/kernel/syscalls/syscalltbl.sh
> >
>
> Looks good. Will keep this in my queue till depending patch is applied.

Thanks for the feedback. As Geert shared few feedback while m68k review,
Hopefully, I may have to include those changes here also.


Firoz

2019-01-14 08:05:53

by Firoz Khan

[permalink] [raw]
Subject: Re: [PATCH 0/2] microblaze: Unify the system call scripts

Hi Michal,

On Thu, 3 Jan 2019 at 18:39, Firoz Khan <[email protected]> wrote:
> > Looks good. Will keep this in my queue till depending patch is applied.
>
> Thanks for the feedback. As Geert shared few feedback while m68k review,
> Hopefully, I may have to include those changes here also.

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

Firoz

2019-01-14 09:23:00

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH 0/2] microblaze: Unify the system call scripts

On 14. 01. 19 9:03, Firoz Khan wrote:
> Hi Michal,
>
> On Thu, 3 Jan 2019 at 18:39, Firoz Khan <[email protected]> wrote:
>>> Looks good. Will keep this in my queue till depending patch is applied.
>>
>> Thanks for the feedback. As Geert shared few feedback while m68k review,
>> Hopefully, I may have to include those changes here also.
>
> FYI, I'm going to abandon this patch series (for other 9 architecture
> also) and planning to come up with asm-generic support along with\
> this one. That can be single patch series and everything can be landed
> in upstream in the same time.

ok. Thanks for letting me know.
Michal


--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://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/Versal SoCs



Attachments:
signature.asc (205.00 B)
OpenPGP digital signature