[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CACT4Y+b6HH1b-ZUwKecTEJ_Y12UijhkZAQuzmGPL3W1RaANL_g@mail.gmail.com>
Date: Tue, 3 Nov 2015 19:20:38 +0100
From: Dmitry Vyukov <dvyukov@...gle.com>
To: Sabrina Dubroca <sd@...asysnail.net>
Cc: netdev <netdev@...r.kernel.org>,
Eric Dumazet <eric.dumazet@...il.com>,
Hannes Frederic Sowa <hannes@...essinduktion.org>
Subject: Re: [PATCH net] ipv6: clean up dev_snmp6 proc entry when we fail to
initialize inet6_dev
On Tue, Nov 3, 2015 at 7:09 PM, Sabrina Dubroca <sd@...asysnail.net> wrote:
> In ipv6_add_dev, when addrconf_sysctl_register fails, we do not clean up
> the dev_snmp6 entry that we have already registered for this device.
>
> It is safe to call snmp6_unregister_dev unconditionally from
> in6_dev_finish_destroy, so do it.
>
> Reported-by: Dmitry Vyukov <dvyukov@...gle.com>
> Acked-by: Hannes Frederic Sowa <hannes@...essinduktion.org>
> Signed-off-by: Sabrina Dubroca <sd@...asysnail.net>
> ---
> Dmitry, I'm not completely sure it's the issue you're triggering, but
> it sems likely.
Dunno.
I would prefer somebody more knowledgeable look at this.
So far I seen failures to "lo" and "sit0" devices. But I would not be
surprised if it can happen for other devices as well.
> net/ipv6/addrconf_core.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/net/ipv6/addrconf_core.c b/net/ipv6/addrconf_core.c
> index bfa941fc1165..96248a333197 100644
> --- a/net/ipv6/addrconf_core.c
> +++ b/net/ipv6/addrconf_core.c
> @@ -168,6 +168,8 @@ void in6_dev_finish_destroy(struct inet6_dev *idev)
> pr_warn("Freeing alive inet6 device %p\n", idev);
> return;
> }
> +
> + snmp6_unregister_dev(idev);
> call_rcu(&idev->rcu, in6_dev_finish_destroy_rcu);
> }
> EXPORT_SYMBOL(in6_dev_finish_destroy);
> --
> 2.6.2
>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists