| From 94f5b9c6efb02966fc021d3429c80a5d62befbab Mon Sep 17 00:00:00 2001 |
| From: Andy Lutomirski <luto@kernel.org> |
| Date: Wed, 3 Jul 2019 13:34:03 -0700 |
| Subject: [PATCH] x86/syscalls: Disallow compat entries for all types of 64-bit |
| syscalls |
| |
| commit f85a8573ceb225e606fcf38a9320782316f47c71 upstream. |
| |
| A "compat" entry in the syscall tables means to use a different entry on |
| 32-bit and 64-bit builds. |
| |
| This only makes sense for syscalls that exist in the first place in 32-bit |
| builds, so disallow it for anything other than i386. |
| |
| Signed-off-by: Andy Lutomirski <luto@kernel.org> |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| Link: https://lkml.kernel.org/r/4b7565954c5a06530ac01d98cb1592538fd8ae51.1562185330.git.luto@kernel.org |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/arch/x86/entry/syscalls/syscalltbl.sh b/arch/x86/entry/syscalls/syscalltbl.sh |
| index 94fcd1951aca..53c8c1a9adf9 100644 |
| --- a/arch/x86/entry/syscalls/syscalltbl.sh |
| +++ b/arch/x86/entry/syscalls/syscalltbl.sh |
| @@ -27,8 +27,8 @@ emit() { |
| compat="$4" |
| umlentry="" |
| |
| - if [ "$abi" = "64" -a -n "$compat" ]; then |
| - echo "a compat entry for a 64-bit syscall makes no sense" >&2 |
| + if [ "$abi" != "I386" -a -n "$compat" ]; then |
| + echo "a compat entry ($abi: $compat) for a 64-bit syscall makes no sense" >&2 |
| exit 1 |
| fi |
| |
| -- |
| 2.7.4 |
| |