]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
perf trace: Introduce SCA_SOCKADDR_FROM_USER() to set .from_user = true
authorArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 9 Sep 2024 19:57:22 +0000 (16:57 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 9 Sep 2024 22:23:04 +0000 (19:23 -0300)
Paving the way for the generic BPF BTF based syscall arg augmenter.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Howard Chu <howardchu95@gmail.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-trace.c
tools/perf/trace/beauty/beauty.h

index 5f31466516842b7c3a30488f12087f55589d912b..64c3f7f7a9aac7d51a3dd1f5b3b711a4985d3949 100644 (file)
@@ -1075,7 +1075,7 @@ static const struct syscall_fmt syscall_fmts[] = {
                   [1] = { .scnprintf = SCA_PTR, /* arg2 */ }, }, },
        { .name     = "bind",
          .arg = { [0] = { .scnprintf = SCA_INT, /* fd */ },
-                  [1] = { .scnprintf = SCA_SOCKADDR, /* umyaddr */ },
+                  [1] = SCA_SOCKADDR_FROM_USER(umyaddr),
                   [2] = { .scnprintf = SCA_INT, /* addrlen */ }, }, },
        { .name     = "bpf",
          .arg = { [0] = STRARRAY(cmd, bpf_cmd), }, },
@@ -1095,7 +1095,7 @@ static const struct syscall_fmt syscall_fmts[] = {
          .arg = { [0] = { .scnprintf = SCA_CLOSE_FD, /* fd */ }, }, },
        { .name     = "connect",
          .arg = { [0] = { .scnprintf = SCA_INT, /* fd */ },
-                  [1] = { .scnprintf = SCA_SOCKADDR, /* servaddr */ },
+                  [1] = SCA_SOCKADDR_FROM_USER(servaddr),
                   [2] = { .scnprintf = SCA_INT, /* addrlen */ }, }, },
        { .name     = "epoll_ctl",
          .arg = { [1] = STRARRAY(op, epoll_ctl_ops), }, },
@@ -1289,7 +1289,7 @@ static const struct syscall_fmt syscall_fmts[] = {
          .arg = { [2] = { .scnprintf = SCA_MSG_FLAGS, /* flags */ }, }, },
        { .name     = "sendto",
          .arg = { [3] = { .scnprintf = SCA_MSG_FLAGS, /* flags */ },
-                  [4] = { .scnprintf = SCA_SOCKADDR, /* addr */ }, }, },
+                  [4] = SCA_SOCKADDR_FROM_USER(addr), }, },
        { .name     = "set_tid_address", .errpid = true, },
        { .name     = "setitimer",
          .arg = { [0] = STRARRAY(which, itimers), }, },
index 3ed11e18ee2dc5ff102dfcb4ee777b00356e5eef..9c6bfb7d0ef1ac2f9a1ea072337e0b84018e0b53 100644 (file)
@@ -229,6 +229,11 @@ size_t syscall_arg__scnprintf_renameat2_flags(char *bf, size_t size, struct sysc
 size_t syscall_arg__scnprintf_sockaddr(char *bf, size_t size, struct syscall_arg *arg);
 #define SCA_SOCKADDR syscall_arg__scnprintf_sockaddr
 
+// 'argname' is just documentational at this point, to remove the previous comment with that info
+#define SCA_SOCKADDR_FROM_USER(argname) \
+         { .scnprintf  = SCA_SOCKADDR, \
+           .from_user  = true, }
+
 size_t syscall_arg__scnprintf_socket_protocol(char *bf, size_t size, struct syscall_arg *arg);
 #define SCA_SK_PROTO syscall_arg__scnprintf_socket_protocol