diff options
Diffstat (limited to 'net/ipv4/igmp.c')
-rw-r--r-- | net/ipv4/igmp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c index fbc53767bf35..313ad93d2f7b 100644 --- a/net/ipv4/igmp.c +++ b/net/ipv4/igmp.c | |||
@@ -1721,7 +1721,8 @@ static int ip_mc_add_src(struct in_device *in_dev, __be32 *pmca, int sfmode, | |||
1721 | if (err) { | 1721 | if (err) { |
1722 | int j; | 1722 | int j; |
1723 | 1723 | ||
1724 | pmc->sfcount[sfmode]--; | 1724 | if (!delta) |
1725 | pmc->sfcount[sfmode]--; | ||
1725 | for (j=0; j<i; j++) | 1726 | for (j=0; j<i; j++) |
1726 | (void) ip_mc_del1_src(pmc, sfmode, &psfsrc[j]); | 1727 | (void) ip_mc_del1_src(pmc, sfmode, &psfsrc[j]); |
1727 | } else if (isexclude != (pmc->sfcount[MCAST_EXCLUDE] != 0)) { | 1728 | } else if (isexclude != (pmc->sfcount[MCAST_EXCLUDE] != 0)) { |