Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'net-bridge-mc-cleanups'

Ido Schimmel says:

====================
bridge: A few multicast cleanups

Clean up a few issues spotted while working on the bridge multicast code
and running its selftests.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>

+10 -15
+3 -8
net/bridge/br_mdb.c
··· 866 866 unsigned long now = jiffies; 867 867 unsigned char flags = 0; 868 868 u8 filter_mode; 869 - int err; 870 869 871 870 __mdb_entry_to_br_ip(entry, &group, mdb_attrs); 872 871 ··· 891 892 return -EINVAL; 892 893 } 893 894 894 - mp = br_mdb_ip_get(br, &group); 895 - if (!mp) { 896 - mp = br_multicast_new_group(br, &group); 897 - err = PTR_ERR_OR_ZERO(mp); 898 - if (err) 899 - return err; 900 - } 895 + mp = br_multicast_new_group(br, &group); 896 + if (IS_ERR(mp)) 897 + return PTR_ERR(mp); 901 898 902 899 /* host join */ 903 900 if (!port) {
+4 -4
net/bridge/br_multicast.c
··· 2669 2669 if (!pmctx || igmpv2) 2670 2670 continue; 2671 2671 2672 - spin_lock_bh(&brmctx->br->multicast_lock); 2672 + spin_lock(&brmctx->br->multicast_lock); 2673 2673 if (!br_multicast_ctx_should_use(brmctx, pmctx)) 2674 2674 goto unlock_continue; 2675 2675 ··· 2717 2717 if (changed) 2718 2718 br_mdb_notify(brmctx->br->dev, mdst, pg, RTM_NEWMDB); 2719 2719 unlock_continue: 2720 - spin_unlock_bh(&brmctx->br->multicast_lock); 2720 + spin_unlock(&brmctx->br->multicast_lock); 2721 2721 } 2722 2722 2723 2723 return err; ··· 2807 2807 if (!pmctx || mldv1) 2808 2808 continue; 2809 2809 2810 - spin_lock_bh(&brmctx->br->multicast_lock); 2810 + spin_lock(&brmctx->br->multicast_lock); 2811 2811 if (!br_multicast_ctx_should_use(brmctx, pmctx)) 2812 2812 goto unlock_continue; 2813 2813 ··· 2859 2859 if (changed) 2860 2860 br_mdb_notify(brmctx->br->dev, mdst, pg, RTM_NEWMDB); 2861 2861 unlock_continue: 2862 - spin_unlock_bh(&brmctx->br->multicast_lock); 2862 + spin_unlock(&brmctx->br->multicast_lock); 2863 2863 } 2864 2864 2865 2865 return err;
-3
tools/testing/selftests/net/forwarding/bridge_igmp.sh
··· 96 96 97 97 switch_destroy 98 98 99 - # Always cleanup the mcast group 100 - ip address del dev $h2 $TEST_GROUP/32 2>&1 1>/dev/null 101 - 102 99 h2_destroy 103 100 h1_destroy 104 101
+3
tools/testing/selftests/net/forwarding/bridge_vlan_mcast.sh
··· 59 59 60 60 switch_destroy() 61 61 { 62 + tc qdisc del dev $swp2 clsact 63 + tc qdisc del dev $swp1 clsact 64 + 62 65 ip link set dev $swp2 down 63 66 ip link set dev $swp1 down 64 67