aboutsummaryrefslogtreecommitdiffstats
path: root/android/patches/0010-seccomp-detect-compat-mode-in-ARM64.patch
diff options
context:
space:
mode:
Diffstat (limited to 'android/patches/0010-seccomp-detect-compat-mode-in-ARM64.patch')
-rw-r--r--android/patches/0010-seccomp-detect-compat-mode-in-ARM64.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/android/patches/0010-seccomp-detect-compat-mode-in-ARM64.patch b/android/patches/0010-seccomp-detect-compat-mode-in-ARM64.patch
new file mode 100644
index 000000000000..61eabeeb0e7d
--- /dev/null
+++ b/android/patches/0010-seccomp-detect-compat-mode-in-ARM64.patch
@@ -0,0 +1,45 @@
+From ce845e0a25d77c8cf0fae539d4596b83e65e3e70 Mon Sep 17 00:00:00 2001
+From: Steve Muckle <smuckle@google.com>
+Date: Tue, 24 Oct 2017 14:41:07 -0700
+Subject: [PATCH] seccomp: detect compat mode in ARM64
+
+Compat mode on ARM64 reports syscall numbering differently.
+
+Test: run vts-kernel -m VtsKernelLinuxKselftestStaging
+Bug: 33027081
+Change-Id: Ifc02bb48573b4a40f1857b41a7735a6e3d7a06e8
+Signed-off-by: Steve Muckle <smuckle@google.com>
+---
+ tools/testing/selftests/seccomp/seccomp_bpf.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/tools/testing/selftests/seccomp/seccomp_bpf.c b/tools/testing/selftests/seccomp/seccomp_bpf.c
+index 2c81f4b9965d..1975e7d42e37 100644
+--- a/tools/testing/selftests/seccomp/seccomp_bpf.c
++++ b/tools/testing/selftests/seccomp/seccomp_bpf.c
+@@ -2295,6 +2295,7 @@ TEST(syscall_restart)
+ };
+ #if defined(__arm__)
+ struct utsname utsbuf;
++ int arm_version;
+ #endif
+
+ ASSERT_EQ(0, pipe(pipefd));
+@@ -2404,12 +2405,12 @@ TEST(syscall_restart)
+ ret = get_syscall(_metadata, child_pid);
+ #if defined(__arm__)
+ /*
+- * FIXME:
+ * - native ARM registers do NOT expose true syscall.
+ * - compat ARM registers on ARM64 DO expose true syscall.
+ */
+ ASSERT_EQ(0, uname(&utsbuf));
+- if (strncmp(utsbuf.machine, "arm", 3) == 0) {
++ if (sscanf(utsbuf.machine, "armv%d", &arm_version) == 1 &&
++ arm_version < 8) {
+ EXPECT_EQ(__NR_nanosleep, ret);
+ } else
+ #endif
+--
+2.16.0.rc1.238.g530d649a79-goog
+