We use the refactored uffd_global_test_opts instead of global variables
for uffd-wp-mremap tests.

Signed-off-by: Ujwal Kundur <ujwal.kun...@gmail.com>
---
 tools/testing/selftests/mm/uffd-wp-mremap.c | 23 +++++++++++++--------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/tools/testing/selftests/mm/uffd-wp-mremap.c 
b/tools/testing/selftests/mm/uffd-wp-mremap.c
index c2ba7d46c7b4..a24f35728ac3 100644
--- a/tools/testing/selftests/mm/uffd-wp-mremap.c
+++ b/tools/testing/selftests/mm/uffd-wp-mremap.c
@@ -157,7 +157,11 @@ static bool range_is_swapped(void *addr, size_t size)
        return true;
 }
 
-static void test_one_folio(size_t size, bool private, bool swapout, bool 
hugetlb)
+static void test_one_folio(uffd_global_test_opts_t *gopts,
+                                               size_t size,
+                                               bool private,
+                                               bool swapout,
+                                               bool hugetlb)
 {
        struct uffdio_writeprotect wp_prms;
        uint64_t features = 0;
@@ -181,21 +185,21 @@ static void test_one_folio(size_t size, bool private, 
bool swapout, bool hugetlb
        }
 
        /* Register range for uffd-wp. */
-       if (userfaultfd_open(&features)) {
+       if (userfaultfd_open(gopts, &features)) {
                if (errno == ENOENT)
                        ksft_test_result_skip("userfaultfd not available\n");
                else
                        ksft_test_result_fail("userfaultfd_open() failed\n");
                goto out;
        }
-       if (uffd_register(uffd, mem, size, false, true, false)) {
+       if (uffd_register(gopts->uffd, mem, size, false, true, false)) {
                ksft_test_result_fail("uffd_register() failed\n");
                goto out;
        }
        wp_prms.mode = UFFDIO_WRITEPROTECT_MODE_WP;
        wp_prms.range.start = (uintptr_t)mem;
        wp_prms.range.len = size;
-       if (ioctl(uffd, UFFDIO_WRITEPROTECT, &wp_prms)) {
+       if (ioctl(gopts->uffd, UFFDIO_WRITEPROTECT, &wp_prms)) {
                ksft_test_result_fail("ioctl(UFFDIO_WRITEPROTECT) failed\n");
                goto out;
        }
@@ -242,9 +246,9 @@ static void test_one_folio(size_t size, bool private, bool 
swapout, bool hugetlb
 out:
        if (mem)
                munmap(mem, size);
-       if (uffd >= 0) {
-               close(uffd);
-               uffd = -1;
+       if (gopts->uffd >= 0) {
+               close(gopts->uffd);
+               gopts->uffd = -1;
        }
 }
 
@@ -336,6 +340,7 @@ static const struct testcase testcases[] = {
 
 int main(int argc, char **argv)
 {
+       uffd_global_test_opts_t gopts;
        struct thp_settings settings;
        int i, j, plan = 0;
 
@@ -367,8 +372,8 @@ int main(int argc, char **argv)
                const struct testcase *tc = &testcases[i];
 
                for (j = 0; j < *tc->nr_sizes; j++)
-                       test_one_folio(tc->sizes[j], tc->private, tc->swapout,
-                                      tc->hugetlb);
+                       test_one_folio(&gopts, tc->sizes[j], tc->private,
+                                          tc->swapout, tc->hugetlb);
        }
 
        /* If THP is supported, restore original THP settings. */
-- 
2.20.1


Reply via email to