diff options
author | Nikolay Aleksandrov <nikolay@nvidia.com> | 2021-08-13 17:59:58 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-08-14 16:02:43 +0300 |
commit | 67b746f94ff39d8b998c4ea9493c6ab2d6c225d4 (patch) | |
tree | d952086c92acb0e8b7b234d4e958f69868c7bc1c /net/bridge/br_private.h | |
parent | bb18ef8e7e180d8590df2808ec4014af114756cb (diff) | |
download | linux-67b746f94ff39d8b998c4ea9493c6ab2d6c225d4.tar.xz |
net: bridge: mcast: make sure querier port/address updates are consistent
Use a sequence counter to make sure port/address updates can be read
consistently without requiring the bridge multicast_lock. We need to
zero out the port and address when the other querier has expired and
we're about to select ourselves as querier. br_multicast_read_querier
will be used later when dumping querier state. Updates are done only
with the multicast spinlock and softirqs disabled, while reads are done
from process context and from softirqs (due to notifications).
Signed-off-by: Nikolay Aleksandrov <nikolay@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_private.h')
-rw-r--r-- | net/bridge/br_private.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index 30ca978676f3..70e2d9a7f105 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -82,6 +82,7 @@ struct bridge_mcast_other_query { struct bridge_mcast_querier { struct br_ip addr; int port_ifidx; + seqcount_t seq; }; /* IGMP/MLD statistics */ |