From: Eric Dumazet <eric.dumazet@gmail.com>
To: Alexei Starovoitov <alexei.starovoitov@gmail.com>,
Yonghong Song <yhs@fb.com>
Cc: ast@fb.com, daniel@iogearbox.net, netdev@vger.kernel.org,
kernel-team@fb.com
Subject: Re: [PATCH bpf v2] bpf: fix memory leak in lpm_trie map_free callback function
Date: Wed, 21 Feb 2018 19:40:14 -0800 [thread overview]
Message-ID: <1519270814.55655.48.camel@gmail.com> (raw)
In-Reply-To: <20180214031719.vbq6yvgtv76sgnvg@ast-mbp.dhcp.thefacebook.com>
On Tue, 2018-02-13 at 19:17 -0800, Alexei Starovoitov wrote:
> On Tue, Feb 13, 2018 at 07:00:21PM -0800, Yonghong Song wrote:
> > There is a memory leak happening in lpm_trie map_free callback
> > function trie_free. The trie structure itself does not get freed.
> >
> > Also, trie_free function did not do synchronize_rcu before freeing
> > various data structures. This is incorrect as some rcu_read_lock
> > region(s) for lookup, update, delete or get_next_key may not complete yet.
> > The fix is to add synchronize_rcu in the beginning of trie_free.
> > The useless spin_lock is removed from this function as well.
> >
> > Fixes: b95a5c4db09b ("bpf: add a longest prefix match trie map implementation")
> > Reported-by: Mathieu Malaterre <malat@debian.org>
> > Reported-by: Alexei Starovoitov <ast@kernel.org>
> > Tested-by: Mathieu Malaterre <malat@debian.org>
> > Signed-off-by: Yonghong Song <yhs@fb.com>
> > ---
> > kernel/bpf/lpm_trie.c | 11 +++++++----
> > 1 file changed, 7 insertions(+), 4 deletions(-)
> >
> > v1->v2:
> > Make comments more precise and make label name more appropriate,
> > as suggested by Daniel
>
> Applied to bpf tree, Thanks Yonghong.
This does not look good.
LOCKDEP surely should complain to
node = rcu_dereference_protected(*slot, lockdep_is_held(&trie->lock));
Since we no longer hold trie->lock
next prev parent reply other threads:[~2018-02-22 3:40 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-14 3:00 [PATCH bpf v2] bpf: fix memory leak in lpm_trie map_free callback function Yonghong Song
2018-02-14 3:17 ` Alexei Starovoitov
2018-02-22 3:40 ` Eric Dumazet [this message]
2018-02-22 3:55 ` Yonghong Song
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=1519270814.55655.48.camel@gmail.com \
--to=eric.dumazet@gmail.com \
--cc=alexei.starovoitov@gmail.com \
--cc=ast@fb.com \
--cc=daniel@iogearbox.net \
--cc=kernel-team@fb.com \
--cc=netdev@vger.kernel.org \
--cc=yhs@fb.com \
/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.