From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Dumazet Subject: Re: [PATCH net-next 0/5] net: Consolidate metrics handling for ipv4 and ipv6 Date: Fri, 5 Oct 2018 06:08:57 -0700 Message-ID: References: <20181005030755.31217-1-dsahern@kernel.org> <20181004.215507.1973705600397352485.davem@davemloft.net> <2b4d849f-9bd3-28aa-7a1c-ad61ab584041@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, weiwan@google.com, sd@queasysnail.net, xiyou.wangcong@gmail.com, dsahern@gmail.com To: Eric Dumazet , David Miller , dsahern@kernel.org Return-path: Received: from mail-pl1-f195.google.com ([209.85.214.195]:32983 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727701AbeJEUHi (ORCPT ); Fri, 5 Oct 2018 16:07:38 -0400 Received: by mail-pl1-f195.google.com with SMTP id s4-v6so6846236plp.0 for ; Fri, 05 Oct 2018 06:08:59 -0700 (PDT) In-Reply-To: <2b4d849f-9bd3-28aa-7a1c-ad61ab584041@gmail.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: On 10/05/2018 05:17 AM, Eric Dumazet wrote: > > > On 10/04/2018 09:55 PM, David Miller wrote: >> From: David Ahern >> Date: Thu, 4 Oct 2018 20:07:50 -0700 >> >>> From: David Ahern >>> >>> As part of the IPv6 fib info refactoring, the intent was to make metrics >>> handling for ipv6 identical to ipv4. One oversight in ip6_dst_destroy >>> led to confusion and a couple of incomplete attempts at finding and >>> fixing the resulting memory leak which was ultimately resolved by >>> ce7ea4af0838 ("ipv6: fix memory leak on dst->_metrics"). >>> >>> Refactor metrics hanlding make the code really identical for v4 and v6, >>> and add a few test cases. >> >> Looks nice, series applied, thanks David. >> > > Does not look well tested and reviewed to me. For some reason I have not received the patch series in my inbox, I only got your "series applied" message. Commit 767a2217533fed6 ("net: common metrics init helper for FIB entries") is not correct because we need to better deal with error paths. I will submit this more formally when I can reach my workstation in a few minutes : diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 6c1d817151cae45421dc976c5ea082b4115650be..74d97addf1af20dda0c2b6a2018e88696f9f7d5a 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -2976,6 +2976,8 @@ static struct fib6_info *ip6_route_info_create(struct fib6_config *cfg, rt->fib6_metrics = ip_fib_metrics_init(net, cfg->fc_mx, cfg->fc_mx_len); if (IS_ERR(rt->fib6_metrics)) { err = PTR_ERR(rt->fib6_metrics); + /* Do not leave garbage there. */ + rt->fib6_metrics = (struct dst_metrics *)&dst_default_metrics; goto out; }