summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorYan, Zheng <zheng.z.yan@intel.com>2011-08-23 22:54:37 +0000
committerDavid S. Miller <davem@davemloft.net>2011-08-24 17:46:15 -0700
commite05c4ad3ed874ee4f5e2c969e55d318ec654332c (patch)
treed8563c03897fe5c84279327471feea8e2ef3ccca /net
parent814fd609fa98f3667974d8c27c4d75ef4ce041ea (diff)
downloadlinux-3.10-e05c4ad3ed874ee4f5e2c969e55d318ec654332c.tar.gz
linux-3.10-e05c4ad3ed874ee4f5e2c969e55d318ec654332c.tar.bz2
linux-3.10-e05c4ad3ed874ee4f5e2c969e55d318ec654332c.zip
mcast: Fix source address selection for multicast listener report
Should check use count of include mode filter instead of total number of include mode filters. Signed-off-by: Zheng Yan <zheng.z.yan@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/igmp.c2
-rw-r--r--net/ipv6/mcast.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c
index 283c0a26e03..d577199eabd 100644
--- a/net/ipv4/igmp.c
+++ b/net/ipv4/igmp.c
@@ -767,7 +767,7 @@ static int igmp_xmarksources(struct ip_mc_list *pmc, int nsrcs, __be32 *srcs)
break;
for (i=0; i<nsrcs; i++) {
/* skip inactive filters */
- if (pmc->sfcount[MCAST_INCLUDE] ||
+ if (psf->sf_count[MCAST_INCLUDE] ||
pmc->sfcount[MCAST_EXCLUDE] !=
psf->sf_count[MCAST_EXCLUDE])
continue;
diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
index 3e6ebcdb477..ee7839f4d6e 100644
--- a/net/ipv6/mcast.c
+++ b/net/ipv6/mcast.c
@@ -1059,7 +1059,7 @@ static int mld_xmarksources(struct ifmcaddr6 *pmc, int nsrcs,
break;
for (i=0; i<nsrcs; i++) {
/* skip inactive filters */
- if (pmc->mca_sfcount[MCAST_INCLUDE] ||
+ if (psf->sf_count[MCAST_INCLUDE] ||
pmc->mca_sfcount[MCAST_EXCLUDE] !=
psf->sf_count[MCAST_EXCLUDE])
continue;