All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masami Hiramatsu <mhiramat@kernel.org>
To: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>,
	Jakub Kicinski <kuba@kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Peter Zijlstra <peterz@infradead.org>,
	Andrii Nakryiko <andrii@kernel.org>,
	Network Development <netdev@vger.kernel.org>,
	bpf <bpf@vger.kernel.org>, Kernel Team <kernel-team@fb.com>
Subject: Re: pull-request: bpf 2022-03-29
Date: Wed, 30 Mar 2022 18:15:39 +0900	[thread overview]
Message-ID: <20220330181539.c1d289f010cf46e873c16b6c@kernel.org> (raw)
In-Reply-To: <20220330135217.b6d0433831f2b3fa420458ae@kernel.org>

On Wed, 30 Mar 2022 13:52:17 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> On Tue, 29 Mar 2022 18:51:22 -0700
> Alexei Starovoitov <alexei.starovoitov@gmail.com> wrote:
> 
> > On Tue, Mar 29, 2022 at 6:41 PM Jakub Kicinski <kuba@kernel.org> wrote:
> > >
> > > 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.
> > 
> > Both are new warnings and not due to these patches, right?
> > 
> > > 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() ?
> > 
> > Masami, please take a look.
> 
> Yeah, I think we should make this rcu pointer (and read side must use rcu_dereference())
> because this rh->handler becomes the key to disable this rethook.
> Let me fix that.

Sorry, please ignore this. Since the handler pointed by rh->handler never
be removed (unless removed by modules, but this will not happen while
the rethook is running), YES, WRITE_ONCE() is enough.
Please add below.

From 92c9c784458f03900823360981812220ce3c7bf3 Mon Sep 17 00:00:00 2001
From: Masami Hiramatsu <mhiramat@kernel.org>
Date: Wed, 30 Mar 2022 18:13:42 +0900
Subject: [PATCH] rethook: Fix to use WRITE_ONCE() for rethook::handler

Since the function pointered by rethook::handler never be removed when
the rethook is alive, it doesn't need to use rcu_assign_pointer() to
update it. Just use WRITE_ONCE().

Reported-by: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 kernel/trace/rethook.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/trace/rethook.c b/kernel/trace/rethook.c
index ab463a4d2b23..b56833700d23 100644
--- a/kernel/trace/rethook.c
+++ b/kernel/trace/rethook.c
@@ -65,7 +65,7 @@ static void rethook_free_rcu(struct rcu_head *head)
  */
 void rethook_free(struct rethook *rh)
 {
-	rcu_assign_pointer(rh->handler, NULL);
+	WRITE_ONCE(rh->handler, NULL);
 
 	call_rcu(&rh->rcu, rethook_free_rcu);
 }
-- 
2.25.1
-- 
Masami Hiramatsu <mhiramat@kernel.org>

  reply	other threads:[~2022-03-30  9:15 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-29 23:49 pull-request: bpf 2022-03-29 Alexei Starovoitov
2022-03-30  1:41 ` Jakub Kicinski
2022-03-30  1:51   ` Alexei Starovoitov
2022-03-30  2:02     ` Jakub Kicinski
2022-03-30  4:52     ` Masami Hiramatsu
2022-03-30  9:15       ` Masami Hiramatsu [this message]
2022-03-30 15:09         ` Alexei Starovoitov
2022-03-31  1:11           ` [PATCH bpf] rethook: Fix to use WRITE_ONCE() for rethook::handler Masami Hiramatsu
2022-03-31  2:30             ` patchwork-bot+netdevbpf
2022-03-31  1:12           ` pull-request: bpf 2022-03-29 Masami Hiramatsu
2022-03-30  8:05     ` Jiri Olsa
2022-03-30 11:01       ` Jiri Olsa
2022-03-30  4:10 ` patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220330181539.c1d289f010cf46e873c16b6c@kernel.org \
    --to=mhiramat@kernel.org \
    --cc=alexei.starovoitov@gmail.com \
    --cc=andrii@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=kernel-team@fb.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=peterz@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.