On 8/14/18 6:37 PM, Toshiaki Makita wrote: > On 2018/08/15 7:36, dsah...@kernel.org wrote: >> From: David Ahern <dsah...@gmail.com> >> >> 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 <dsah...@gmail.com> >> --- >> 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.