diff --git a/[refs] b/[refs] index 1165f3885360..ad7e82a82a94 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e4fabf2b6e6d75752d5eede57f23ff8e9c6aa09b +refs/heads/master: 9cb6cb7ed11cd3b69c47bb414983603a6ff20b1d diff --git a/trunk/drivers/net/vxlan.c b/trunk/drivers/net/vxlan.c index c3e3d2929ee3..7cee7a3068ec 100644 --- a/trunk/drivers/net/vxlan.c +++ b/trunk/drivers/net/vxlan.c @@ -1506,6 +1506,14 @@ static __net_init int vxlan_init_net(struct net *net) static __net_exit void vxlan_exit_net(struct net *net) { struct vxlan_net *vn = net_generic(net, vxlan_net_id); + struct vxlan_dev *vxlan; + unsigned h; + + rtnl_lock(); + for (h = 0; h < VNI_HASH_SIZE; ++h) + hlist_for_each_entry(vxlan, &vn->vni_list[h], hlist) + dev_close(vxlan->dev); + rtnl_unlock(); if (vn->sock) { sk_release_kernel(vn->sock->sk);