From: Daniel Lezcano <dlezcano@fr.ibm.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: davem@davemloft.net, containers@lists.osdl.org, netdev@vger.kernel.org
Subject: Re: [patch 1/1][NETNS] resend: fix net released by rcu callback
Date: Tue, 30 Oct 2007 22:43:26 +0100 [thread overview]
Message-ID: <4727A57E.501@fr.ibm.com> (raw)
In-Reply-To: <m1odegl47t.fsf@ebiederm.dsl.xmission.com>
Eric W. Biederman wrote:
> Daniel Lezcano <dlezcano@fr.ibm.com> writes:
>
>> When a network namespace reference is held by a network subsystem,
>> and when this reference is decremented in a rcu update callback, we
>> must ensure that there is no more outstanding rcu update before
>> trying to free the network namespace.
>>
>> In the normal case, the rcu_barrier is called when the network namespace
>> is exiting in the cleanup_net function.
>>
>> But when a network namespace creation fails, and the subsystems are
>> undone (like the cleanup), the rcu_barrier is missing.
>>
>> This patch adds the missing rcu_barrier.
>
> Looks sane. Did you have any specific failures related to this or was
> this something that was just caught in review?
Yes, I had this problem when doing ipv6 isolation for netns49. The ipv6
subsystem creation failed and the different subsystem where rollbacked
in the setup_net function.
When the network namespace was about to be freed in free_net function, I
had the error with an usage refcount different from zero.
It appears that was coming from core/neighbour.c
neigh_parms_release
-> neigh_rcu_free_parms
-> neigh_parms_put
-> neigh_parms_destroy
-> release_net
The free_net function was called before rcu callback neigh_rcu_free_parms.
next prev parent reply other threads:[~2007-10-30 21:43 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20071030162139.954791193@mai.toulouse-stg.fr.ibm.com>
2007-10-30 16:21 ` [patch 1/1][NETNS] resend: fix net released by rcu callback Daniel Lezcano
2007-10-30 20:47 ` Eric W. Biederman
2007-10-30 21:43 ` Daniel Lezcano [this message]
2007-10-30 22:34 ` Eric W. Biederman
2007-10-30 22:39 ` David Miller
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=4727A57E.501@fr.ibm.com \
--to=dlezcano@fr.ibm.com \
--cc=containers@lists.osdl.org \
--cc=davem@davemloft.net \
--cc=ebiederm@xmission.com \
--cc=netdev@vger.kernel.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.