1From 5c872199efc522c08cc34b4763edec861f87abfc Mon Sep 17 00:00:00 2001 2From: Edward Liaw <[email protected]> 3Date: Thu, 28 Jul 2022 00:26:52 +0000 4Subject: [PATCH 20/20] 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 <[email protected]> 13--- 14 tools/testing/selftests/vm/userfaultfd.c | 17 +++++++++++++++++ 15 1 file changed, 17 insertions(+) 16 17diff --git a/tools/testing/selftests/vm/userfaultfd.c b/tools/testing/selftests/vm/userfaultfd.c 18index e905bb502667..02cc35b65a7a 100644 19--- a/tools/testing/selftests/vm/userfaultfd.c 20+++ b/tools/testing/selftests/vm/userfaultfd.c 21@@ -1784,7 +1784,24 @@ static void set_test_type(const char *type) 22 static void parse_test_type_arg(const char *raw_type) 23 { 24 char *buf = strdup(raw_type); 25+ /* b/234150821 26+ * UFFD_FEATURE_PAGEFAULT_FLAG_WP unsupported in kernel <5.7 27+ */ 28+#ifdef __ANDROID__ 29+ uint64_t features = ( 30+ UFFD_FEATURE_EVENT_FORK | \ 31+ UFFD_FEATURE_EVENT_REMAP | \ 32+ UFFD_FEATURE_EVENT_REMOVE | \ 33+ UFFD_FEATURE_EVENT_UNMAP | \ 34+ UFFD_FEATURE_MISSING_HUGETLBFS | \ 35+ UFFD_FEATURE_MISSING_SHMEM | \ 36+ UFFD_FEATURE_SIGBUS | \ 37+ UFFD_FEATURE_THREAD_ID | \ 38+ UFFD_FEATURE_MINOR_HUGETLBFS | \ 39+ UFFD_FEATURE_MINOR_SHMEM); 40+#else 41 uint64_t features = UFFD_API_FEATURES; 42+#endif 43 44 while (buf) { 45 const char *token = strsep(&buf, ":"); 46-- 472.42.0.609.gbb76f46606-goog 48 49