Shung-Hsi Yu 9a0e0c
From: Jiri Olsa <jolsa@kernel.org>
Shung-Hsi Yu 9a0e0c
Date: Wed, 30 Mar 2022 13:05:10 +0200
Shung-Hsi Yu 9a0e0c
Subject: bpf: Fix sparse warnings in kprobe_multi_resolve_syms
Shung-Hsi Yu 9a0e0c
Patch-mainline: v5.18-rc2
Shung-Hsi Yu 9a0e0c
Git-commit: d31e0386a2f122b40b605eb0120a2fbcfca77868
Shung-Hsi Yu 529c95
References: jsc#PED-1377
Shung-Hsi Yu 9a0e0c
Shung-Hsi Yu 9a0e0c
Adding missing __user tags to fix sparse warnings:
Shung-Hsi Yu 9a0e0c
Shung-Hsi Yu 9a0e0c
kernel/trace/bpf_trace.c:2370:34: warning: incorrect type in argument 2 (different address spaces)
Shung-Hsi Yu 9a0e0c
kernel/trace/bpf_trace.c:2370:34:    expected void const [noderef] __user *from
Shung-Hsi Yu 9a0e0c
kernel/trace/bpf_trace.c:2370:34:    got void const *usyms
Shung-Hsi Yu 9a0e0c
kernel/trace/bpf_trace.c:2376:51: warning: incorrect type in argument 2 (different address spaces)
Shung-Hsi Yu 9a0e0c
kernel/trace/bpf_trace.c:2376:51:    expected char const [noderef] __user *src
Shung-Hsi Yu 9a0e0c
kernel/trace/bpf_trace.c:2376:51:    got char const *
Shung-Hsi Yu 9a0e0c
kernel/trace/bpf_trace.c:2443:49: warning: incorrect type in argument 1 (different address spaces)
Shung-Hsi Yu 9a0e0c
kernel/trace/bpf_trace.c:2443:49:    expected void const *usyms
Shung-Hsi Yu 9a0e0c
kernel/trace/bpf_trace.c:2443:49:    got void [noderef] __user *[assigned] usyms
Shung-Hsi Yu 9a0e0c
Shung-Hsi Yu 9a0e0c
Fixes: 0dcac2725406 ("bpf: Add multi kprobe link")
Shung-Hsi Yu 9a0e0c
Reported-by: Alexei Starovoitov <ast@kernel.org>
Shung-Hsi Yu 9a0e0c
Reported-by: Jakub Kicinski <kuba@kernel.org>
Shung-Hsi Yu 9a0e0c
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Shung-Hsi Yu 9a0e0c
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Shung-Hsi Yu 9a0e0c
Link: https://lore.kernel.org/bpf/20220330110510.398558-1-jolsa@kernel.org
Shung-Hsi Yu 9a0e0c
Acked-by: Shung-Hsi Yu <shung-hsi.yu@suse.com>
Shung-Hsi Yu 9a0e0c
---
Shung-Hsi Yu 9a0e0c
 kernel/trace/bpf_trace.c |    4 ++--
Shung-Hsi Yu 9a0e0c
 1 file changed, 2 insertions(+), 2 deletions(-)
Shung-Hsi Yu 9a0e0c
Shung-Hsi Yu 9a0e0c
--- a/kernel/trace/bpf_trace.c
Shung-Hsi Yu 9a0e0c
+++ b/kernel/trace/bpf_trace.c
Shung-Hsi Yu 9a0e0c
@@ -2354,11 +2354,11 @@ kprobe_multi_link_handler(struct fprobe
Shung-Hsi Yu 9a0e0c
 }
Shung-Hsi Yu 9a0e0c
 
Shung-Hsi Yu 9a0e0c
 static int
Shung-Hsi Yu 9a0e0c
-kprobe_multi_resolve_syms(const void *usyms, u32 cnt,
Shung-Hsi Yu 9a0e0c
+kprobe_multi_resolve_syms(const void __user *usyms, u32 cnt,
Shung-Hsi Yu 9a0e0c
 			  unsigned long *addrs)
Shung-Hsi Yu 9a0e0c
 {
Shung-Hsi Yu 9a0e0c
 	unsigned long addr, size;
Shung-Hsi Yu 9a0e0c
-	const char **syms;
Shung-Hsi Yu 9a0e0c
+	const char __user **syms;
Shung-Hsi Yu 9a0e0c
 	int err = -ENOMEM;
Shung-Hsi Yu 9a0e0c
 	unsigned int i;
Shung-Hsi Yu 9a0e0c
 	char *func;