xfrm: fix gro_cells leak when remove virtual xfrm interfaces
authorLi RongQing <lirongqing@baidu.com>
Sun, 30 Sep 2018 07:06:06 +0000 (15:06 +0800)
committerSteffen Klassert <steffen.klassert@secunet.com>
Tue, 2 Oct 2018 06:11:45 +0000 (08:11 +0200)
The device gro_cells has been initialized, it should be freed,
otherwise it will be leaked

Fixes: f203b76d78092faf2 ("xfrm: Add virtual xfrm interfaces")
Signed-off-by: Zhang Yu <zhangyu31@baidu.com>
Signed-off-by: Li RongQing <lirongqing@baidu.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/xfrm/xfrm_interface.c

index 31acc6f..6f05e83 100644 (file)
@@ -116,6 +116,9 @@ static void xfrmi_unlink(struct xfrmi_net *xfrmn, struct xfrm_if *xi)
 
 static void xfrmi_dev_free(struct net_device *dev)
 {
+       struct xfrm_if *xi = netdev_priv(dev);
+
+       gro_cells_destroy(&xi->gro_cells);
        free_percpu(dev->tstats);
 }