aboutsummaryrefslogtreecommitdiffstats
path: root/net/bridge/br_private.h
diff options
context:
space:
mode:
authorNikolay Aleksandrov <nikolay@nvidia.com>2021-08-13 17:59:57 +0300
committerDavid S. Miller <davem@davemloft.net>2021-08-14 14:02:43 +0100
commitbb18ef8e7e180d8590df2808ec4014af114756cb (patch)
tree8c37a3ae08cb262aff32315e609bb787dc1ad23a /net/bridge/br_private.h
parentMerge branch 'devlink-cleanup-for-delay-event' (diff)
downloadlinux-dev-bb18ef8e7e180d8590df2808ec4014af114756cb.tar.xz
linux-dev-bb18ef8e7e180d8590df2808ec4014af114756cb.zip
net: bridge: mcast: record querier port device ifindex instead of pointer
Currently when a querier port is detected its net_bridge_port pointer is recorded, but it's used only for comparisons so it's fine to have stale pointer, in order to dereference and use the port pointer a proper accounting of its usage must be implemented adding unnecessary complexity. To solve the problem we can just store the netdevice ifindex instead of the port pointer and retrieve the bridge port. It is a best effort and the device needs to be validated that is still part of that bridge before use, but that is small price to pay for avoiding querier reference counting for each port/vlan. 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.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
index c4a8fee990c9..30ca978676f3 100644
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -81,7 +81,7 @@ struct bridge_mcast_other_query {
/* selected querier */
struct bridge_mcast_querier {
struct br_ip addr;
- struct net_bridge_port __rcu *port;
+ int port_ifidx;
};
/* IGMP/MLD statistics */