Browse Source

vxlan: remove vxlan_group_used in vxlan_open

In vxlan_open, vxlan_group_used always returns true,
because the state of the vxlan deivces which we want
to open has alreay been running. and it has already
in vxlan_list.

Since ip_mc_join_group takes care of the reference
of struct ip_mc_list. removing vxlan_group_used here
is safe.

Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Gao feng 11 years ago
parent
commit
79d4a94fab
1 changed files with 1 additions and 3 deletions
  1. 1 3
      drivers/net/vxlan.c

+ 1 - 3
drivers/net/vxlan.c

@@ -1935,7 +1935,6 @@ static void vxlan_uninit(struct net_device *dev)
 /* Start ageing timer and join group when device is brought up */
 /* Start ageing timer and join group when device is brought up */
 static int vxlan_open(struct net_device *dev)
 static int vxlan_open(struct net_device *dev)
 {
 {
-	struct vxlan_net *vn = net_generic(dev_net(dev), vxlan_net_id);
 	struct vxlan_dev *vxlan = netdev_priv(dev);
 	struct vxlan_dev *vxlan = netdev_priv(dev);
 	struct vxlan_sock *vs = vxlan->vn_sock;
 	struct vxlan_sock *vs = vxlan->vn_sock;
 
 
@@ -1943,8 +1942,7 @@ static int vxlan_open(struct net_device *dev)
 	if (!vs)
 	if (!vs)
 		return -ENOTCONN;
 		return -ENOTCONN;
 
 
-	if (vxlan_addr_multicast(&vxlan->default_dst.remote_ip) &&
-	    vxlan_group_used(vn, &vxlan->default_dst.remote_ip)) {
+	if (vxlan_addr_multicast(&vxlan->default_dst.remote_ip)) {
 		vxlan_sock_hold(vs);
 		vxlan_sock_hold(vs);
 		dev_hold(dev);
 		dev_hold(dev);
 		queue_work(vxlan_wq, &vxlan->igmp_join);
 		queue_work(vxlan_wq, &vxlan->igmp_join);