bridge: mcast: Use spin_lock() instead of spin_lock_bh()
authorIdo Schimmel <idosch@nvidia.com>
Tue, 18 Oct 2022 06:40:00 +0000 (09:40 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 19 Oct 2022 13:01:08 +0000 (14:01 +0100)
IGMPv3 / MLDv2 Membership Reports are only processed from the data path
with softIRQ disabled, so there is no need to call spin_lock_bh(). Use
spin_lock() instead.

This is consistent with how other IGMP / MLD packets are processed.

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_multicast.c

index db4f264..09140bc 100644 (file)
@@ -2669,7 +2669,7 @@ static int br_ip4_multicast_igmp3_report(struct net_bridge_mcast *brmctx,
                if (!pmctx || igmpv2)
                        continue;
 
-               spin_lock_bh(&brmctx->br->multicast_lock);
+               spin_lock(&brmctx->br->multicast_lock);
                if (!br_multicast_ctx_should_use(brmctx, pmctx))
                        goto unlock_continue;
 
@@ -2717,7 +2717,7 @@ static int br_ip4_multicast_igmp3_report(struct net_bridge_mcast *brmctx,
                if (changed)
                        br_mdb_notify(brmctx->br->dev, mdst, pg, RTM_NEWMDB);
 unlock_continue:
-               spin_unlock_bh(&brmctx->br->multicast_lock);
+               spin_unlock(&brmctx->br->multicast_lock);
        }
 
        return err;
@@ -2807,7 +2807,7 @@ static int br_ip6_multicast_mld2_report(struct net_bridge_mcast *brmctx,
                if (!pmctx || mldv1)
                        continue;
 
-               spin_lock_bh(&brmctx->br->multicast_lock);
+               spin_lock(&brmctx->br->multicast_lock);
                if (!br_multicast_ctx_should_use(brmctx, pmctx))
                        goto unlock_continue;
 
@@ -2859,7 +2859,7 @@ static int br_ip6_multicast_mld2_report(struct net_bridge_mcast *brmctx,
                if (changed)
                        br_mdb_notify(brmctx->br->dev, mdst, pg, RTM_NEWMDB);
 unlock_continue:
-               spin_unlock_bh(&brmctx->br->multicast_lock);
+               spin_unlock(&brmctx->br->multicast_lock);
        }
 
        return err;