Be sure that sock_list array initialized in net_init hook was return to initial state
Signed-off-by: Vasily Averin <v...@virtuozzo.com> --- drivers/net/vxlan.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index d7c49cf..acf5763 100644 --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c @@ -3704,6 +3704,7 @@ static void __net_exit vxlan_exit_net(struct net *net) struct vxlan_net *vn = net_generic(net, vxlan_net_id); struct vxlan_dev *vxlan, *next; struct net_device *dev, *aux; + unsigned int h; LIST_HEAD(list); rtnl_lock(); @@ -3723,6 +3724,12 @@ static void __net_exit vxlan_exit_net(struct net *net) unregister_netdevice_many(&list); rtnl_unlock(); + + for (h = 0; h < PORT_HASH_SIZE; ++h) + if (WARN_ONCE(!hlist_empty(&vn->sock_list[h]), + "net %x %s: sock_list is not empty\n", + net->ns.inum, __func__)) + break; } static struct pernet_operations vxlan_net_ops = { -- 2.7.4