• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1From 37d2454af92b6ac3a3f98503cf9393efa1564189 Mon Sep 17 00:00:00 2001
2From: Edward Liaw <edliaw@google.com>
3Date: Thu, 28 Jul 2022 00:26:52 +0000
4Subject: [PATCH] userfaultfd: don't use unsupported feature
5
6UFFD_FEATURE_PAGEFAULT_FLAG_WP was added in linux 5.7 and currently
7unsupported in Android >5.10.
8
9Bug: 234150821
10Test: atest vts_linux_kselftest_x86_64:vm_userfaultfd_anon_x86_64#vm_userfaultfd_anon_x86_64
11Test: atest vts_linux_kselftest_x86_64:vm_userfaultfd_shmem_x86_64#vm_userfaultfd_shmem_x86_64
12Signed-off-by: Edward Liaw <edliaw@google.com>
13Change-Id: Ice2a9d3e427f717037175e68d5e209063c6693ee
14---
15 tools/testing/selftests/vm/userfaultfd.c | 17 +++++++++++++++++
16 1 file changed, 17 insertions(+)
17
18diff --git a/tools/testing/selftests/vm/userfaultfd.c b/tools/testing/selftests/vm/userfaultfd.c
19index a38d5ac456d1a..d8ec4b0e4a4e0 100644
20--- a/tools/testing/selftests/vm/userfaultfd.c
21+++ b/tools/testing/selftests/vm/userfaultfd.c
22@@ -1652,7 +1652,24 @@ unsigned long default_huge_page_size(void)
23
24 static void set_test_type(const char *type)
25 {
26+	/* b/234150821
27+	 * UFFD_FEATURE_PAGEFAULT_FLAG_WP unsupported in kernel <5.7
28+	 */
29+#ifdef __ANDROID__
30+	uint64_t features = (
31+			   UFFD_FEATURE_EVENT_FORK |		\
32+			   UFFD_FEATURE_EVENT_REMAP |		\
33+			   UFFD_FEATURE_EVENT_REMOVE |		\
34+			   UFFD_FEATURE_EVENT_UNMAP |		\
35+			   UFFD_FEATURE_MISSING_HUGETLBFS |	\
36+			   UFFD_FEATURE_MISSING_SHMEM |		\
37+			   UFFD_FEATURE_SIGBUS |		\
38+			   UFFD_FEATURE_THREAD_ID |		\
39+			   UFFD_FEATURE_MINOR_HUGETLBFS |	\
40+			   UFFD_FEATURE_MINOR_SHMEM);
41+#else
42 	uint64_t features = UFFD_API_FEATURES;
43+#endif
44
45 	if (!strcmp(type, "anon")) {
46 		test_type = TEST_ANON;
47--
482.37.1.455.g008518b4e5-goog
49
50