summaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorVeaceslav Falico <vfalico@redhat.com>2011-05-24 01:15:05 +0200
committerDavid S. Miller <davem@davemloft.net>2011-05-24 19:26:12 +0200
commit24cf3af3fed5edcf90bc2a0ed181e6ce1513d2dc (patch)
tree3e86eba024dbd8c34ca413d5c0cc28fbb321e15d /drivers/net
parentnet: use synchronize_rcu_expedited() (diff)
downloadlinux-24cf3af3fed5edcf90bc2a0ed181e6ce1513d2dc.tar.xz
linux-24cf3af3fed5edcf90bc2a0ed181e6ce1513d2dc.zip
igmp: call ip_mc_clear_src() only when we have no users of ip_mc_list
In igmp_group_dropped() we call ip_mc_clear_src(), which resets the number of source filters per mulitcast. However, igmp_group_dropped() is also called on NETDEV_DOWN, NETDEV_PRE_TYPE_CHANGE and NETDEV_UNREGISTER, which means that the group might get added back on NETDEV_UP, NETDEV_REGISTER and NETDEV_POST_TYPE_CHANGE respectively, leaving us with broken source filters. To fix that, we must clear the source filters only when there are no users in the ip_mc_list, i.e. in ip_mc_dec_group() and on device destroy. Acked-by: David L Stevens <dlstevens@us.ibm.com> Signed-off-by: Veaceslav Falico <vfalico@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
0 files changed, 0 insertions, 0 deletions