These memory barriers are legacy code from the old vlan implementation that is not needed anymore. They're also affecting the fast-path. The pvid is changed under lock and is read with rcu only in the fast-path there is no need for a barrier, nothing to commit prior to changing it nor invalidate prior to reading.
Signed-off-by: Nikolay Aleksandrov <[email protected]> --- net/bridge/br_private.h | 1 - net/bridge/br_vlan.c | 2 -- 2 files changed, 3 deletions(-) diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index d337b1cfb980..5b2c22ad669e 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -1687,7 +1687,6 @@ static inline u16 br_get_pvid(const struct net_bridge_vlan_group *vg) if (!vg) return 0; - smp_rmb(); return vg->pvid; } diff --git a/net/bridge/br_vlan.c b/net/bridge/br_vlan.c index 1e0e436629ec..2ae6ffb23399 100644 --- a/net/bridge/br_vlan.c +++ b/net/bridge/br_vlan.c @@ -40,7 +40,6 @@ static void __vlan_add_pvid(struct net_bridge_vlan_group *vg, if (vg->pvid == v->vid) return; - smp_wmb(); br_vlan_set_pvid_state(vg, v->state); vg->pvid = v->vid; } @@ -50,7 +49,6 @@ static void __vlan_delete_pvid(struct net_bridge_vlan_group *vg, u16 vid) if (vg->pvid != vid) return; - smp_wmb(); vg->pvid = 0; } -- 2.47.3
