[ovs-dev] [PATCH 1/2] vxlan: Use sk_release_kernel() instead of sock_release().
Jesse Gross
jesse at nicira.com
Thu Dec 6 19:11:29 UTC 2012
A socket that is created using sock_create_kern() and then switched
to a namespace using sk_change_net() should be released using
sk_release_kernel() instead of sock_release(). This is because
sk_change_net() has already released a reference to the namespace
and we shouldn't try to release it again later.
Cc: Kyle Mestery <kmestery at cisco.com>
Signed-off-by: Jesse Gross <jesse at nicira.com>
---
datapath/vport-vxlan.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/datapath/vport-vxlan.c b/datapath/vport-vxlan.c
index 137e5d8..3d7260f 100644
--- a/datapath/vport-vxlan.c
+++ b/datapath/vport-vxlan.c
@@ -222,7 +222,7 @@ static int vxlan_socket_init(struct vxlan_port *vxlan_port, struct net *net)
return 0;
error_sock:
- sock_release(vxlan_port->vxlan_rcv_socket);
+ sk_release_kernel(vxlan_port->vxlan_rcv_socket->sk);
error:
pr_warn("cannot register vxlan protocol handler\n");
return err;
@@ -234,7 +234,7 @@ static void vxlan_tunnel_release(struct vxlan_port *vxlan_port)
if (vxlan_port->count == 0) {
/* Release old socket */
- sock_release(vxlan_port->vxlan_rcv_socket);
+ sk_release_kernel(vxlan_port->vxlan_rcv_socket->sk);
list_del(&vxlan_port->list);
kfree(vxlan_port);
}
--
1.7.9.5
More information about the dev
mailing list