Delete vxlan-sock list entry from list before freeing the memory.

Signed-off-by: Pravin B Shelar <pshe...@nicira.com>
---
 drivers/net/vxlan.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 284c6c0..173705f 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -1606,9 +1606,11 @@ static int vxlan_newlink(struct net *net, struct 
net_device *dev,
        err = register_netdevice(dev);
        if (err) {
                if (--vs->refcnt == 0) {
+                       hlist_del_rcu(&vs->hlist);
                        rtnl_unlock();
+
                        sk_release_kernel(vs->sock->sk);
-                       kfree(vs);
+                       kfree_rcu(vs, rcu);
                        rtnl_lock();
                }
                return err;
-- 
1.7.1

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to