Patchwork [net-next] vxlan: fix a regression of igmp join

login
register
mail settings
Submitter Amerigo Wang
Date Aug. 7, 2013, 8:35 a.m.
Message ID <1375864545-5721-1-git-send-email-amwang@redhat.com>
Download mbox | patch
Permalink /patch/265403/
State Accepted
Delegated to: David Miller
Headers show

Comments

Amerigo Wang - Aug. 7, 2013, 8:35 a.m.
From: Cong Wang <amwang@redhat.com>

This is a regression introduced by:

	commit 3fc2de2faba387218bdf9dbc6b13f513ac3b060a
	Author: stephen hemminger <stephen@networkplumber.org>
	Date:   Thu Jul 18 08:40:15 2013 -0700

	    vxlan: fix igmp races

Before this commit, the old code was:

       if (vxlan_group_used(vn, vxlan->default_dst.remote_ip))
               ip_mc_join_group(sk, &mreq);
       else
               ip_mc_leave_group(sk, &mreq);

therefore we shoud check vxlan_group_used(), not its opposite,
for igmp_join.

Cc: Stephen Hemminger <stephen@networkplumber.org>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Cong Wang <amwang@redhat.com>

---
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller - Aug. 9, 2013, 6:42 p.m.
From: Cong Wang <amwang@redhat.com>
Date: Wed,  7 Aug 2013 16:35:45 +0800

> From: Cong Wang <amwang@redhat.com>
> 
> This is a regression introduced by:
> 
> 	commit 3fc2de2faba387218bdf9dbc6b13f513ac3b060a
> 	Author: stephen hemminger <stephen@networkplumber.org>
> 	Date:   Thu Jul 18 08:40:15 2013 -0700
> 
> 	    vxlan: fix igmp races
> 
> Before this commit, the old code was:
> 
>        if (vxlan_group_used(vn, vxlan->default_dst.remote_ip))
>                ip_mc_join_group(sk, &mreq);
>        else
>                ip_mc_leave_group(sk, &mreq);
> 
> therefore we shoud check vxlan_group_used(), not its opposite,
> for igmp_join.
> 
> Cc: Stephen Hemminger <stephen@networkplumber.org>
> Cc: David S. Miller <davem@davemloft.net>
> Signed-off-by: Cong Wang <amwang@redhat.com>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 8bf31d9..f3ba986 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -1430,7 +1430,7 @@  static int vxlan_open(struct net_device *dev)
 		return -ENOTCONN;
 
 	if (IN_MULTICAST(ntohl(vxlan->default_dst.remote_ip)) &&
-	    ! vxlan_group_used(vn, vxlan->default_dst.remote_ip)) {
+	    vxlan_group_used(vn, vxlan->default_dst.remote_ip)) {
 		vxlan_sock_hold(vs);
 		dev_hold(dev);
 		queue_work(vxlan_wq, &vxlan->igmp_join);