summaryrefslogtreecommitdiff
path: root/scripts/syscalltbl.sh
diff options
context:
space:
mode:
authorMasahiro Yamada <masahiroy@kernel.org>2021-07-05 15:06:54 +0900
committerMasahiro Yamada <masahiroy@kernel.org>2021-07-09 04:00:39 +0900
commitc6a3a81d19b834e3aed819027f022c5938fca2ec (patch)
treef44a9b2ced0e0d8d9ca894cad174dbb807ee3ec2 /scripts/syscalltbl.sh
parenta0e781a2a35a8dd4e6a38571998d59c6b0e32cd8 (diff)
scripts: check duplicated syscall number in syscall table
Currently, syscall{hdr,tbl}.sh sorts the entire syscall table, but you can assume it is already sorted by the syscall number. The generated syscall table does not work if the same syscall number appears twice. Check it in the script. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Diffstat (limited to 'scripts/syscalltbl.sh')
-rwxr-xr-xscripts/syscalltbl.sh7
1 files changed, 6 insertions, 1 deletions
diff --git a/scripts/syscalltbl.sh b/scripts/syscalltbl.sh
index aa6ab156301c..6abe143889ef 100755
--- a/scripts/syscalltbl.sh
+++ b/scripts/syscalltbl.sh
@@ -52,10 +52,15 @@ outfile="$2"
nxt=0
-grep -E "^[0-9]+[[:space:]]+$abis" "$infile" | sort -n | {
+grep -E "^[0-9]+[[:space:]]+$abis" "$infile" | {
while read nr abi name native compat ; do
+ if [ $nxt -gt $nr ]; then
+ echo "error: $infile: syscall table is not sorted or duplicates the same syscall number" >&2
+ exit 1
+ fi
+
while [ $nxt -lt $nr ]; do
echo "__SYSCALL($nxt, sys_ni_syscall)"
nxt=$((nxt + 1))