diff options
author | Florian Westphal <fw@strlen.de> | 2024-04-15 15:23:44 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2024-04-17 03:33:59 +0300 |
commit | 86600ea11dc18ecd10110c13148d0fb04a80ceea (patch) | |
tree | 6d01eed868dd9cc6b18764845b9f51d9f9d91c58 /net/ipv6/ip6_vti.c | |
parent | 427f6acbc88154f40f68391dcfea36b821fcd06a (diff) | |
download | linux-86600ea11dc18ecd10110c13148d0fb04a80ceea.tar.xz |
ip6_vti: fix memleak on netns dismantle
kmemleak reports net_device resources are no longer released, restore
needs_free_netdev toggle. Sample backtrace:
unreferenced object 0xffff88810874f000 (size 4096): [..]
[<00000000a2b8af8b>] __kmalloc_node+0x209/0x290
[<0000000040b0a1a9>] alloc_netdev_mqs+0x58/0x470
[<00000000b4be1e78>] vti6_init_net+0x94/0x230
[<000000008830c1ea>] ops_init+0x32/0xc0
[<000000006a26fa8f>] setup_net+0x134/0x2e0
[..]
Cc: Breno Leitao <leitao@debian.org>
Fixes: a9b2d55a8f1e ("ip6_vti: Do not use custom stat allocator")
Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/20240415122346.26503-1-fw@strlen.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/ipv6/ip6_vti.c')
-rw-r--r-- | net/ipv6/ip6_vti.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv6/ip6_vti.c b/net/ipv6/ip6_vti.c index 4d68a0777b0c..78344cf3867e 100644 --- a/net/ipv6/ip6_vti.c +++ b/net/ipv6/ip6_vti.c @@ -901,6 +901,7 @@ static void vti6_dev_setup(struct net_device *dev) { dev->netdev_ops = &vti6_netdev_ops; dev->header_ops = &ip_tunnel_header_ops; + dev->needs_free_netdev = true; dev->pcpu_stat_type = NETDEV_PCPU_STAT_TSTATS; dev->type = ARPHRD_TUNNEL6; |