blob: 96513895785d911c719d87354283566a87158aec [file] [log] [blame]
From 37d2454af92b6ac3a3f98503cf9393efa1564189 Mon Sep 17 00:00:00 2001
From: Edward Liaw <edliaw@google.com>
Date: Thu, 28 Jul 2022 00:26:52 +0000
Subject: [PATCH] userfaultfd: don't use unsupported feature
UFFD_FEATURE_PAGEFAULT_FLAG_WP was added in linux 5.7 and currently
unsupported in Android >5.10.
Bug: 234150821
Test: atest vts_linux_kselftest_x86_64:vm_userfaultfd_anon_x86_64#vm_userfaultfd_anon_x86_64
Test: atest vts_linux_kselftest_x86_64:vm_userfaultfd_shmem_x86_64#vm_userfaultfd_shmem_x86_64
Signed-off-by: Edward Liaw <[email protected]>
Change-Id: Ice2a9d3e427f717037175e68d5e209063c6693ee
---
tools/testing/selftests/vm/userfaultfd.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/tools/testing/selftests/vm/userfaultfd.c b/tools/testing/selftests/vm/userfaultfd.c
index a38d5ac456d1a..d8ec4b0e4a4e0 100644
--- a/tools/testing/selftests/vm/userfaultfd.c
+++ b/tools/testing/selftests/vm/userfaultfd.c
@@ -1652,7 +1652,24 @@ unsigned long default_huge_page_size(void)
static void set_test_type(const char *type)
{
+ /* b/234150821
+ * UFFD_FEATURE_PAGEFAULT_FLAG_WP unsupported in kernel <5.7
+ */
+#ifdef __ANDROID__
+ uint64_t features = (
+ UFFD_FEATURE_EVENT_FORK | \
+ UFFD_FEATURE_EVENT_REMAP | \
+ UFFD_FEATURE_EVENT_REMOVE | \
+ UFFD_FEATURE_EVENT_UNMAP | \
+ UFFD_FEATURE_MISSING_HUGETLBFS | \
+ UFFD_FEATURE_MISSING_SHMEM | \
+ UFFD_FEATURE_SIGBUS | \
+ UFFD_FEATURE_THREAD_ID | \
+ UFFD_FEATURE_MINOR_HUGETLBFS | \
+ UFFD_FEATURE_MINOR_SHMEM);
+#else
uint64_t features = UFFD_API_FEATURES;
+#endif
if (!strcmp(type, "anon")) {
test_type = TEST_ANON;
--
2.37.1.455.g008518b4e5-goog