• Hangbin Liu's avatar
    igmp: do not remove igmp souce list info when set link down · bd1b664a
    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.2:
     - Use IGMP_Unsolicited_Report_Count instead of sysctl_igmp_qrv
     - Adjust context]
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    bd1b664a
igmp.c 63.1 KB