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