From: Steffen Klassert <steffen.klassert-opNxpl+3fjRBDgjK7y7TUQ@public.gmane.org>
To: Eric Dumazet <eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: herbert-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org,
ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org
Subject: Re: [PATCH net-next v2 1/2] inetpeer: add namespace support for inetpeer
Date: Tue, 5 Jun 2012 13:27:28 +0200 [thread overview]
Message-ID: <20120605112728.GB27795@secunet.com> (raw)
In-Reply-To: <1338886626.2760.2109.camel@edumazet-glaptop>
On Tue, Jun 05, 2012 at 10:57:06AM +0200, Eric Dumazet wrote:
> On Tue, 2012-06-05 at 15:52 +0800, Gao feng wrote:
>
> > +static void __net_exit inetpeer_net_exit(struct net *net)
> > +{
> > + inetpeer_invalidate_tree(net, AF_INET);
> > + kfree(net->ipv4.peers);
> > +
> > + inetpeer_invalidate_tree(net, AF_INET6);
> > + kfree(net->ipv6.peers);
> > +}
> > +
>
> Are we 1000% sure no code ever run in inetpeer land after this call ?
>
> I would add
> net->ipv4.peers = NULL;
> net->ipv6.peers = NULL;
>
> to catch NULL deref instead of strange errors, just in case.
I thought about that too, and I'm not absolutely sure.
The rest of this patch looks ok to me.
>
> By the way, I think we have a bug in inetpeer_gc_worker()
>
> Steffen ?
>
> We have no rcu grace period to make sure the following is safe :
>
> if (!atomic_read(&p->refcnt)) {
> list_del(&p->gc_list);
> kmem_cache_free(peer_cachep, p);
> }
I think this is ok as it is. inetpeer_invalidate_tree()
unlinks the whole inetpeer tree from the inetpeer base and
adds it to a gc_list. These intetpeer entries are stale,
they can't be looked up again. So noone should increment the
refcount, they just wait until the refcount get zero.
next prev parent reply other threads:[~2012-06-05 11:27 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-05 7:52 [PATCH net-next v2 1/2] inetpeer: add namespace support for inetpeer Gao feng
[not found] ` <1338886626.2760.2109.camel@edumazet-glaptop>
2012-06-05 11:27 ` Steffen Klassert [this message]
[not found] ` <20120605112728.GB27795-opNxpl+3fjRBDgjK7y7TUQ@public.gmane.org>
2012-06-05 12:00 ` Eric Dumazet
[not found] ` <1338897630.2760.2433.camel@edumazet-glaptop>
2012-06-05 12:15 ` Steffen Klassert
[not found] ` <20120605121510.GD27795-opNxpl+3fjRBDgjK7y7TUQ@public.gmane.org>
2012-06-05 12:18 ` Eric Dumazet
2012-06-05 12:29 ` Gao feng
[not found] ` <1338882737-11914-1-git-send-email-gaofeng-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2012-06-05 7:52 ` [PATCH net-next v2 2/2] inetpeer: add parameter net for inet_getpeer_v4, v6 Gao feng
2012-06-05 8:57 ` [PATCH net-next v2 1/2] inetpeer: add namespace support for inetpeer Eric Dumazet
2012-06-06 17:43 ` David Miller
[not found] ` <20120606.104323.1698446129331745479.davem@davemloft.net>
[not found] ` <20120606.104323.1698446129331745479.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2012-06-07 21:43 ` David Miller
[not found] ` <20120607.144301.1259354794384347085.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2012-06-08 1:44 ` Gao feng
[not found] ` <4FD158E4.1080701-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2012-06-08 3:53 ` David Miller
[not found] ` <20120607.205348.913373847915721607.davem@davemloft.net>
[not found] ` <20120607.205348.913373847915721607.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2012-06-08 5:27 ` Gao feng
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=20120605112728.GB27795@secunet.com \
--to=steffen.klassert-opnxpl+3fjrbdgjk7y7tuq@public.gmane.org \
--cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
--cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \
--cc=eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=herbert-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox