selftests/mm/mlock: print error on failure
authorBrendan Jackman <jackmanb@google.com>
Tue, 11 Mar 2025 13:18:23 +0000 (13:18 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 17 Mar 2025 05:06:40 +0000 (22:06 -0700)
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.

Link: https://lkml.kernel.org/r/20250311-mm-selftests-v4-12-dec210a658f5@google.com
Signed-off-by: Brendan Jackman <jackmanb@google.com>
Cc: Dev Jain <dev.jain@arm.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Mateusz Guzik <mjguzik@gmail.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
tools/testing/selftests/mm/mlock-random-test.c
tools/testing/selftests/mm/mlock2.h

index 1cd80b0f76c33f04ef01f4dee6602f28b6a7c991..b8d7e966f44c67e5606d384bd660e5a4e5e8fda9 100644 (file)
@@ -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);
        }
 
index 4417eaa5cfb78ba2bb0f51d3418c9b768ff0fe90..81e77fa41901a095cc041e05d01da7dffbf2f4fe 100644 (file)
@@ -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)