1*053f45beSAndroid Build Coastguard WorkerFrom 5c872199efc522c08cc34b4763edec861f87abfc Mon Sep 17 00:00:00 2001
2*053f45beSAndroid Build Coastguard WorkerFrom: Edward Liaw <[email protected]>
3*053f45beSAndroid Build Coastguard WorkerDate: Thu, 28 Jul 2022 00:26:52 +0000
4*053f45beSAndroid Build Coastguard WorkerSubject: [PATCH 20/20] userfaultfd: don't use unsupported feature
5*053f45beSAndroid Build Coastguard Worker
6*053f45beSAndroid Build Coastguard WorkerUFFD_FEATURE_PAGEFAULT_FLAG_WP was added in linux 5.7 and currently
7*053f45beSAndroid Build Coastguard Workerunsupported in Android >5.10.
8*053f45beSAndroid Build Coastguard Worker
9*053f45beSAndroid Build Coastguard WorkerBug: 234150821
10*053f45beSAndroid Build Coastguard WorkerTest: atest vts_linux_kselftest_x86_64:vm_userfaultfd_anon_x86_64#vm_userfaultfd_anon_x86_64
11*053f45beSAndroid Build Coastguard WorkerTest: atest vts_linux_kselftest_x86_64:vm_userfaultfd_shmem_x86_64#vm_userfaultfd_shmem_x86_64
12*053f45beSAndroid Build Coastguard WorkerSigned-off-by: Edward Liaw <[email protected]>
13*053f45beSAndroid Build Coastguard Worker---
14*053f45beSAndroid Build Coastguard Worker tools/testing/selftests/vm/userfaultfd.c | 17 +++++++++++++++++
15*053f45beSAndroid Build Coastguard Worker 1 file changed, 17 insertions(+)
16*053f45beSAndroid Build Coastguard Worker
17*053f45beSAndroid Build Coastguard Workerdiff --git a/tools/testing/selftests/vm/userfaultfd.c b/tools/testing/selftests/vm/userfaultfd.c
18*053f45beSAndroid Build Coastguard Workerindex e905bb502667..02cc35b65a7a 100644
19*053f45beSAndroid Build Coastguard Worker--- a/tools/testing/selftests/vm/userfaultfd.c
20*053f45beSAndroid Build Coastguard Worker+++ b/tools/testing/selftests/vm/userfaultfd.c
21*053f45beSAndroid Build Coastguard Worker@@ -1784,7 +1784,24 @@ static void set_test_type(const char *type)
22*053f45beSAndroid Build Coastguard Worker static void parse_test_type_arg(const char *raw_type)
23*053f45beSAndroid Build Coastguard Worker {
24*053f45beSAndroid Build Coastguard Worker 	char *buf = strdup(raw_type);
25*053f45beSAndroid Build Coastguard Worker+	/* b/234150821
26*053f45beSAndroid Build Coastguard Worker+	 * UFFD_FEATURE_PAGEFAULT_FLAG_WP unsupported in kernel <5.7
27*053f45beSAndroid Build Coastguard Worker+	 */
28*053f45beSAndroid Build Coastguard Worker+#ifdef __ANDROID__
29*053f45beSAndroid Build Coastguard Worker+	uint64_t features = (
30*053f45beSAndroid Build Coastguard Worker+		UFFD_FEATURE_EVENT_FORK |        \
31*053f45beSAndroid Build Coastguard Worker+		UFFD_FEATURE_EVENT_REMAP |       \
32*053f45beSAndroid Build Coastguard Worker+		UFFD_FEATURE_EVENT_REMOVE |      \
33*053f45beSAndroid Build Coastguard Worker+		UFFD_FEATURE_EVENT_UNMAP |       \
34*053f45beSAndroid Build Coastguard Worker+		UFFD_FEATURE_MISSING_HUGETLBFS | \
35*053f45beSAndroid Build Coastguard Worker+		UFFD_FEATURE_MISSING_SHMEM |     \
36*053f45beSAndroid Build Coastguard Worker+		UFFD_FEATURE_SIGBUS |            \
37*053f45beSAndroid Build Coastguard Worker+		UFFD_FEATURE_THREAD_ID |         \
38*053f45beSAndroid Build Coastguard Worker+		UFFD_FEATURE_MINOR_HUGETLBFS |   \
39*053f45beSAndroid Build Coastguard Worker+		UFFD_FEATURE_MINOR_SHMEM);
40*053f45beSAndroid Build Coastguard Worker+#else
41*053f45beSAndroid Build Coastguard Worker 	uint64_t features = UFFD_API_FEATURES;
42*053f45beSAndroid Build Coastguard Worker+#endif
43*053f45beSAndroid Build Coastguard Worker
44*053f45beSAndroid Build Coastguard Worker 	while (buf) {
45*053f45beSAndroid Build Coastguard Worker 		const char *token = strsep(&buf, ":");
46*053f45beSAndroid Build Coastguard Worker--
47*053f45beSAndroid Build Coastguard Worker2.42.0.609.gbb76f46606-goog
48*053f45beSAndroid Build Coastguard Worker
49