• Hangbin Liu's avatar
    igmp: do not remove igmp souce list info when set link down · b38c6e0b
    Hangbin Liu authored
    commit 24803f38 upstream.
    
    In commit 24cf3af3 ("igmp: call ip_mc_clear_src..."), we forgot to remove
    igmpv3_clear_delrec() in ip_mc_down(), which also called ip_mc_clear_src().
    This make us clear all IGMPv3 source filter info after NETDEV_DOWN.
    Move igmpv3_clear_delrec() to ip_mc_destroy_dev() and then no need
    ip_mc_clear_src() in ip_mc_destroy_dev().
    
    On the other hand, we should restore back instead of free all source filter
    info in igmpv3_del_delrec(). Or we will not able to restore IGMPv3 source
    filter info after NETDEV_UP and NETDEV_POST_TYPE_CHANGE.
    
    Fixes: 24cf3af3 ("igmp: call ip_mc_clear_src() only when ...")
    Signed-off-by: default avatarHangbin Liu <liuhangbin@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    [bwh: Backported to 3.16: use IGMP_Unsolicited_Report_Count instead of
     sysctl_igmp_qrv]
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    b38c6e0b
igmp.c 66.2 KB