All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] igmp: fix ip_mc_clear_src to not reset ip_mc_list->sf{mode,count}
@ 2011-05-15 16:59 Veaceslav Falico
  2011-05-16 18:03 ` David Miller
  0 siblings, 1 reply; 11+ messages in thread
From: Veaceslav Falico @ 2011-05-15 16:59 UTC (permalink / raw)
  To: David S. Miller
  Cc: Michal Marek, Alexey Kuznetsov, Pekka Savola (ipv6),
	James Morris, Hideaki YOSHIFUJI, Patrick McHardy, linux-kbuild,
	linux-kernel, netdev

ip_mc_clear_src resets the imc->sfcount and imc->sfmode, without taking into
account the current number of sockets listening on that multicast struct, which
can lead to bogus routes for local listeners.

On NETDEV_DOWN/UP event, if there were 3 multicast listeners for that interface's
address, the imc->sfcount[MCAST_EXCLUDE] will be reset to 1. And after that a
listener socket destroys, multicast traffic will not be delivered to local
listeners because __mkroute_output drops the local flag for the route (by
checking ip_check_mc).

Signed-off-by: Veaceslav Falico <vfalico@redhat.com>

diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c
index 1fd3d9c..b14f371 100644
--- a/net/ipv4/igmp.c
+++ b/net/ipv4/igmp.c
@@ -1775,9 +1775,6 @@ static void ip_mc_clear_src(struct ip_mc_list *pmc)
 		kfree(psf);
 	}
 	pmc->sources = NULL;
-	pmc->sfmode = MCAST_EXCLUDE;
-	pmc->sfcount[MCAST_INCLUDE] = 0;
-	pmc->sfcount[MCAST_EXCLUDE] = 1;
 }
 
 

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2011-05-24 17:32 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-15 16:59 [PATCH 1/1] igmp: fix ip_mc_clear_src to not reset ip_mc_list->sf{mode,count} Veaceslav Falico
2011-05-16 18:03 ` David Miller
2011-05-16 20:42   ` David Stevens
2011-05-17 13:30     ` Veaceslav Falico
2011-05-17 13:38     ` [PATCH v2 1/1] igmp: call ip_mc_clear_src() only when we have no users of ip_mc_list Veaceslav Falico
2011-05-17 14:37       ` [PATCH v3 " Veaceslav Falico
2011-05-17 17:42         ` David Stevens
2011-05-20 16:27           ` Veaceslav Falico
2011-05-23 17:41             ` David Stevens
2011-05-24  9:15               ` [PATCH v4 " Veaceslav Falico
2011-05-24 17:28                 ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.