Subject: Re: pull-request: bpf 2022-03-29

From: Jakub Kicinski <[email-masked]>
Date: Tue, 29 Mar 2022 18:41:23 -0700

On Tue, 29 Mar 2022 16:49:24 -0700 Alexei Starovoitov wrote:
> Hi David, hi Jakub,
> 
> The following pull-request contains BPF updates for your *net* tree.
> 
> We've added 16 non-merge commits during the last 1 day(s) which contain
> a total of 24 files changed, 354 insertions(+), 187 deletions(-).
> 
> The main changes are:
> 
> 1) x86 specific bits of fprobe/rethook, from Masami and Peter.
> 
> 2) ice/xsk fixes, from Maciej and Magnus.
> 
> 3) Various small fixes, from Andrii, Yonghong, Geliang and others.

There are some new sparse warnings here that look semi-legit.
As in harmless but not erroneous.

kernel/trace/rethook.c:68:9: error: incompatible types in comparison expression (different address spaces):
kernel/trace/rethook.c:68:9:    void ( [noderef] __rcu * )( ... )
kernel/trace/rethook.c:68:9:    void ( * )( ... )

66 void rethook_free(struct rethook *rh)
67 {
68         rcu_assign_pointer(rh->handler, NULL);
69 
70         call_rcu(&rh->rcu, rethook_free_rcu);
71 }

Looks like this should be a WRITE_ONCE() ?

And the __user annotations in bpf_trace.c are still not right,
first arg of kprobe_multi_resolve_syms() should __user:

kernel/trace/bpf_trace.c:2370:34: warning: incorrect type in argument 2 (different address spaces)
kernel/trace/bpf_trace.c:2370:34:    expected void const [noderef] __user *from
kernel/trace/bpf_trace.c:2370:34:    got void const *usyms
kernel/trace/bpf_trace.c:2376:51: warning: incorrect type in argument 2 (different address spaces)
kernel/trace/bpf_trace.c:2376:51:    expected char const [noderef] __user *src
kernel/trace/bpf_trace.c:2376:51:    got char const *
kernel/trace/bpf_trace.c:2443:49: warning: incorrect type in argument 1 (different address spaces)
kernel/trace/bpf_trace.c:2443:49:    expected void const *usyms
kernel/trace/bpf_trace.c:2443:49:    got void [noderef] __user *[assigned] usyms

How do you wanna proceed?