It's not really possible to start diagnosing this without knowing the
actual error.
Also update the mlock2 helper to behave like libc would by setting errno
and returning -1.

Signed-off-by: Brendan Jackman <jackm...@google.com>
---
 tools/testing/selftests/mm/mlock-random-test.c | 4 ++--
 tools/testing/selftests/mm/mlock2.h            | 8 +++++++-
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/mm/mlock-random-test.c 
b/tools/testing/selftests/mm/mlock-random-test.c
index 
1cd80b0f76c33f04ef01f4dee6602f28b6a7c991..b8d7e966f44c67e5606d384bd660e5a4e5e8fda9
 100644
--- a/tools/testing/selftests/mm/mlock-random-test.c
+++ b/tools/testing/selftests/mm/mlock-random-test.c
@@ -161,9 +161,9 @@ static void test_mlock_within_limit(char *p, int alloc_size)
                                       MLOCK_ONFAULT);
 
                if (ret)
-                       ksft_exit_fail_msg("%s() failure at |%p(%d)| 
mlock:|%p(%d)|\n",
+                       ksft_exit_fail_msg("%s() failure (%s) at |%p(%d)| 
mlock:|%p(%d)|\n",
                                           is_mlock ? "mlock" : "mlock2",
-                                          p, alloc_size,
+                                          strerror(errno), p, alloc_size,
                                           p + start_offset, lock_size);
        }
 
diff --git a/tools/testing/selftests/mm/mlock2.h 
b/tools/testing/selftests/mm/mlock2.h
index 
4417eaa5cfb78ba2bb0f51d3418c9b768ff0fe90..81e77fa41901a095cc041e05d01da7dffbf2f4fe
 100644
--- a/tools/testing/selftests/mm/mlock2.h
+++ b/tools/testing/selftests/mm/mlock2.h
@@ -6,7 +6,13 @@
 
 static int mlock2_(void *start, size_t len, int flags)
 {
-       return syscall(__NR_mlock2, start, len, flags);
+       int ret = syscall(__NR_mlock2, start, len, flags);
+
+       if (ret) {
+               errno = ret;
+               return -1;
+       }
+       return 0;
 }
 
 static FILE *seek_to_smaps_entry(unsigned long addr)

-- 
2.49.0.rc0.332.g42c0ae87b1-goog


Reply via email to