Snap for 8414339 from e9ebf262fc0229aefd9f2366fba8870c2b17fdf5 to tm-qpr1-release

Change-Id: I6faf0af74f8cac2d3d189799a111e74e9b3bb556
diff --git a/android/patches/0022-selftests-binderfs-skip-tests-for-unsupported-kernel.patch b/android/patches/0022-selftests-binderfs-skip-tests-for-unsupported-kernel.patch
deleted file mode 100644
index 7b1e1a1..0000000
--- a/android/patches/0022-selftests-binderfs-skip-tests-for-unsupported-kernel.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 57b74c1b318625057398ccbe479a157507488d8c Mon Sep 17 00:00:00 2001
-From: Carlos Llamas <cmllamas@google.com>
-Date: Tue, 14 Dec 2021 05:58:48 +0000
-Subject: [PATCH] selftests/binderfs: skip tests for unsupported kernels
-
-Binderfs was first introduced in Linux 5.0 release, so we need to skip
-these tests for older kernels. Also, we force a successful exit as the
-current framework doesn't handle KSFT_SKIP return codes.
-
-Signed-off-by: Carlos Llamas <cmllamas@google.com>
----
- .../filesystems/binderfs/binderfs_test.c      | 28 +++++++++++++++++++
- 1 file changed, 28 insertions(+)
-
-diff --git a/tools/testing/selftests/filesystems/binderfs/binderfs_test.c b/tools/testing/selftests/filesystems/binderfs/binderfs_test.c
-index 8c2ed962e1c7..be5a8f446066 100644
---- a/tools/testing/selftests/filesystems/binderfs/binderfs_test.c
-+++ b/tools/testing/selftests/filesystems/binderfs/binderfs_test.c
-@@ -12,6 +12,7 @@
- #include <sys/mount.h>
- #include <sys/stat.h>
- #include <sys/types.h>
-+#include <sys/utsname.h>
- #include <unistd.h>
- #include <linux/android/binder.h>
- #include <linux/android/binderfs.h>
-@@ -267,8 +268,35 @@ static void binderfs_test_unprivileged()
- 	__do_binderfs_test();
- }
- 
-+/* binderfs first introduced in Linux 5.0 */
-+bool binderfs_supported(void)
-+{
-+	const int min_kernel_version = 5;
-+	struct utsname utsname;
-+	int ret, version;
-+
-+	ret = uname(&utsname);
-+	if (ret)
-+		ksft_exit_fail_msg("%s - Failed to get kernel version\n",
-+				   strerror(errno));
-+
-+	ret = sscanf(utsname.release, "%d.", &version);
-+	if (ret != 1)
-+		ksft_exit_fail_msg("%s - Failed to parse uname: %s\n",
-+				   strerror(errno), utsname.release);
-+
-+	return version >= min_kernel_version? true: false;
-+}
-+
-+
- int main(int argc, char *argv[])
- {
-+	/* Force success exit for older kernels */
-+	if (!binderfs_supported()) {
-+		ksft_print_msg("Skipping tests - binderfs not supported\n");
-+		ksft_exit_pass();
-+	}
-+
- 	binderfs_test_privileged();
- 	binderfs_test_unprivileged();
- 	ksft_exit_pass();
--- 
-2.34.1.173.g76aa8bc2d0-goog
-
diff --git a/android/patches/0025-selftests-userfaultfd-skip-if-unavailable.patch b/android/patches/0025-selftests-userfaultfd-skip-if-unavailable.patch
new file mode 100644
index 0000000..0920fb3
--- /dev/null
+++ b/android/patches/0025-selftests-userfaultfd-skip-if-unavailable.patch
@@ -0,0 +1,33 @@
+From 30c060a86f0e56c19e18ade48c0ee7592edfc317 Mon Sep 17 00:00:00 2001
+From: Edward Liaw <edliaw@google.com>
+Date: Thu, 24 Mar 2022 00:29:56 +0000
+Subject: [PATCH] selftests: userfaultfd skip if unavailable
+
+Skip userfaultfd selftest if the syscall is not available for this
+kernel.
+
+Bug: 207175332
+Bug: 206503000
+Test: atest vts_linux_kselftest_arm_64:vm_userfaultfd_shmem_arm_64
+Change-Id: I60e4d6cc5b3886048ffa1995e4b090f6fbe26b3d
+Signed-off-by: Edward Liaw <edliaw@google.com>
+---
+ tools/testing/selftests/vm/userfaultfd.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/testing/selftests/vm/userfaultfd.c b/tools/testing/selftests/vm/userfaultfd.c
+index ffc78f3..17947fe 100644
+--- a/tools/testing/selftests/vm/userfaultfd.c
++++ b/tools/testing/selftests/vm/userfaultfd.c
+@@ -665,7 +665,7 @@ static int userfaultfd_open(int features)
+ 		if (errno == ENOSYS) {
+ 			fprintf(stderr,
+ 				"userfaultfd syscall not available in this kernel\n");
+-			exit(KSFT_PASS);
++			exit(KSFT_SKIP);
+ 		}
+ 		fprintf(stderr,
+ 			"userfaultfd syscall failed with errno: %d\n", errno);
+-- 
+2.35.1.1021.g381101b075-goog
+
diff --git a/tools/testing/selftests/filesystems/binderfs/binderfs_test.c b/tools/testing/selftests/filesystems/binderfs/binderfs_test.c
index 4465b4f..397bf26 100644
--- a/tools/testing/selftests/filesystems/binderfs/binderfs_test.c
+++ b/tools/testing/selftests/filesystems/binderfs/binderfs_test.c
@@ -12,7 +12,6 @@
 #include <sys/mount.h>
 #include <sys/stat.h>
 #include <sys/types.h>
-#include <sys/utsname.h>
 #include <unistd.h>
 #include <linux/android/binder.h>
 #include <linux/android/binderfs.h>
@@ -274,35 +273,8 @@
 	__do_binderfs_test();
 }
 
-/* binderfs first introduced in Linux 5.0 */
-bool binderfs_supported(void)
-{
-	const int min_kernel_version = 5;
-	struct utsname utsname;
-	int ret, version;
-
-	ret = uname(&utsname);
-	if (ret)
-		ksft_exit_fail_msg("%s - Failed to get kernel version\n",
-				   strerror(errno));
-
-	ret = sscanf(utsname.release, "%d.", &version);
-	if (ret != 1)
-		ksft_exit_fail_msg("%s - Failed to parse uname: %s\n",
-				   strerror(errno), utsname.release);
-
-	return version >= min_kernel_version? true: false;
-}
-
-
 int main(int argc, char *argv[])
 {
-	/* Force success exit for older kernels */
-	if (!binderfs_supported()) {
-		ksft_print_msg("Skipping tests - binderfs not supported\n");
-		ksft_exit_pass();
-	}
-
 	binderfs_test_privileged();
 	binderfs_test_unprivileged();
 	ksft_exit_pass();
diff --git a/tools/testing/selftests/vm/userfaultfd.c b/tools/testing/selftests/vm/userfaultfd.c
index ffc78f3..17947fe 100644
--- a/tools/testing/selftests/vm/userfaultfd.c
+++ b/tools/testing/selftests/vm/userfaultfd.c
@@ -665,7 +665,7 @@
 		if (errno == ENOSYS) {
 			fprintf(stderr,
 				"userfaultfd syscall not available in this kernel\n");
-			exit(KSFT_PASS);
+			exit(KSFT_SKIP);
 		}
 		fprintf(stderr,
 			"userfaultfd syscall failed with errno: %d\n", errno);