]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
perf test: Fix sys_enter_openat event test for musl
authorMartin Kaiser <martin@kaiser.cx>
Tue, 28 Apr 2026 14:38:47 +0000 (16:38 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 11 May 2026 17:16:28 +0000 (14:16 -0300)
The "syscalls:sys_enter_openat event fields" test calls

openat(AT_FDCWD, "/etc/passwd", O_RDONLY | O_DIRECTORY)

and verifies that the flags of the captured event are matching.
This fails for musl, where the openat syscall wrapper always adds
O_LARGEFILE.

Update the check to allow for additional flags, the access mode flags
must be unchanged.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/tests/openat-syscall-tp-fields.c

index 2a139d2781a87574a4cdd8dbf3f915e4526c379f..5523cf4e932154e61e759a3aa48a28216d9e18b3 100644 (file)
@@ -120,7 +120,10 @@ static int test__syscall_openat_tp_fields(struct test_suite *test __maybe_unused
 
                                tp_flags = evsel__intval(evsel, &sample, "flags");
                                perf_sample__exit(&sample);
-                               if (flags != tp_flags) {
+                               /* C library wrapper may set additional flags,
+                                  access mode must be unchanged */
+                               if ((tp_flags & O_ACCMODE) != (flags & O_ACCMODE) ||
+                                   (tp_flags & flags) != flags) {
                                        pr_debug("%s: Expected flags=%#x, got %#x\n",
                                                 __func__, flags, tp_flags);
                                        goto out_delete_evlist;