From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Ahern Subject: Re: [PATCH net] veth: Free queues on link delete Date: Tue, 14 Aug 2018 18:47:25 -0600 Message-ID: <801c8cd8-bcee-2961-aed9-975cfa966890@gmail.com> References: <20180814223657.32101-1-dsahern@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: davem@davemloft.net To: Toshiaki Makita , dsahern@kernel.org, netdev@vger.kernel.org Return-path: Received: from mail-pg1-f193.google.com ([209.85.215.193]:33669 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726837AbeHODhM (ORCPT ); Tue, 14 Aug 2018 23:37:12 -0400 Received: by mail-pg1-f193.google.com with SMTP id r5-v6so9878563pgv.0 for ; Tue, 14 Aug 2018 17:47:28 -0700 (PDT) In-Reply-To: Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: On 8/14/18 6:37 PM, Toshiaki Makita wrote: > On 2018/08/15 7:36, dsahern@kernel.org wrote: >> From: David Ahern >> >> kmemleak reported new suspected memory leaks. >> $ cat /sys/kernel/debug/kmemleak >> unreferenced object 0xffff880130b6ec00 (size 1024): >> comm "ip", pid 916, jiffies 4296194668 (age 7251.672s) >> hex dump (first 32 bytes): >> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ >> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ >> backtrace: >> [<000000001ed37cc9>] kmemleak_alloc+0x70/0x94 >> [<00000000646dfdeb>] slab_post_alloc_hook+0x42/0x52 >> [<0000000004aba61b>] __kmalloc+0x101/0x142 >> [<0000000054d50e21>] kmalloc_array.constprop.20+0x1e/0x26 [veth] >> [<000000008238855a>] veth_newlink+0x147/0x3ac [veth] >> ... >> >> The allocation in question is veth_alloc_queues. >> >> Free the queues on a delete. > > Oops, thanks for catching this. > >> Fixes: 638264dc90227 ("veth: Support per queue XDP ring") >> Signed-off-by: David Ahern >> --- >> drivers/net/veth.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/net/veth.c b/drivers/net/veth.c >> index e3202af72df5..bef7d212f04e 100644 >> --- a/drivers/net/veth.c >> +++ b/drivers/net/veth.c >> @@ -1205,6 +1205,7 @@ static void veth_dellink(struct net_device *dev, struct list_head *head) >> struct veth_priv *priv; >> struct net_device *peer; >> >> + veth_free_queues(dev); >> priv = netdev_priv(dev); >> peer = rtnl_dereference(priv->peer); > > We need to free up peer queues as well. missed that. Odd that kmemleak was not complaining. > Also isn't this for net-next though it is now closed? > yes. was not sure if net-next is now net. will send a v2.