Commit 8b65ef5a authored by Vitaly Chikunov's avatar Vitaly Chikunov Committed by Andrew Morton

selftests/mm: Fix build with _FORTIFY_SOURCE

Add missing flags argument to open(2) call with O_CREAT.

Some tests fail to compile if _FORTIFY_SOURCE is defined (to any valid
value) (together with -O), resulting in similar error messages such as:

  In file included from /usr/include/fcntl.h:342,
                   from gup_test.c:1:
  In function 'open',
      inlined from 'main' at gup_test.c:206:10:
  /usr/include/bits/fcntl2.h:50:11: error: call to '__open_missing_mode' declared with attribute error: open with O_CREAT or O_TMPFILE in second argument needs 3 arguments
     50 |           __open_missing_mode ();
        |           ^~~~~~~~~~~~~~~~~~~~~~

_FORTIFY_SOURCE is enabled by default in some distributions, so the
tests are not built by default and are skipped.

open(2) man-page warns about missing flags argument: "if it is not
supplied, some arbitrary bytes from the stack will be applied as the
file mode."

Link: https://lkml.kernel.org/r/20240318023445.3192922-1-vt@altlinux.org
Fixes: aeb85ed4 ("tools/testing/selftests/vm/gup_benchmark.c: allow user specified file")
Fixes: fbe37501 ("mm: huge_memory: debugfs for file-backed THP split")
Fixes: c942f5bd ("selftests: soft-dirty: add test for mprotect")
Signed-off-by: default avatarVitaly Chikunov <vt@altlinux.org>
Reviewed-by: default avatarZi Yan <ziy@nvidia.com>
Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
Cc: Keith Busch <kbusch@kernel.org>
Cc: Peter Xu <peterx@redhat.com>
Cc: Yang Shi <shy828301@gmail.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Nadav Amit <nadav.amit@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent f8572367
...@@ -203,7 +203,7 @@ int main(int argc, char **argv) ...@@ -203,7 +203,7 @@ int main(int argc, char **argv)
ksft_print_header(); ksft_print_header();
ksft_set_plan(nthreads); ksft_set_plan(nthreads);
filed = open(file, O_RDWR|O_CREAT); filed = open(file, O_RDWR|O_CREAT, 0664);
if (filed < 0) if (filed < 0)
ksft_exit_fail_msg("Unable to open %s: %s\n", file, strerror(errno)); ksft_exit_fail_msg("Unable to open %s: %s\n", file, strerror(errno));
......
...@@ -137,7 +137,7 @@ static void test_mprotect(int pagemap_fd, int pagesize, bool anon) ...@@ -137,7 +137,7 @@ static void test_mprotect(int pagemap_fd, int pagesize, bool anon)
if (!map) if (!map)
ksft_exit_fail_msg("anon mmap failed\n"); ksft_exit_fail_msg("anon mmap failed\n");
} else { } else {
test_fd = open(fname, O_RDWR | O_CREAT); test_fd = open(fname, O_RDWR | O_CREAT, 0664);
if (test_fd < 0) { if (test_fd < 0) {
ksft_test_result_skip("Test %s open() file failed\n", __func__); ksft_test_result_skip("Test %s open() file failed\n", __func__);
return; return;
......
...@@ -223,7 +223,7 @@ void split_file_backed_thp(void) ...@@ -223,7 +223,7 @@ void split_file_backed_thp(void)
ksft_exit_fail_msg("Fail to create file-backed THP split testing file\n"); ksft_exit_fail_msg("Fail to create file-backed THP split testing file\n");
} }
fd = open(testfile, O_CREAT|O_WRONLY); fd = open(testfile, O_CREAT|O_WRONLY, 0664);
if (fd == -1) { if (fd == -1) {
ksft_perror("Cannot open testing file"); ksft_perror("Cannot open testing file");
goto cleanup; goto cleanup;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment