mirror of https://gitee.com/openkylin/linux.git
mlxsw: spectrum: Don't take multiple references on a FID
In commit14d39461b3
("mlxsw: spectrum: Use per-FID struct for the VLAN-aware bridge") I added a per-FID struct, which member ports can take a reference on upon VLAN membership configuration. However, sometimes only the VLAN flags (e.g. egress untagged) are toggled without changing the VLAN membership. In these cases we shouldn't take another reference on the FID. Fixes:14d39461b3
("mlxsw: spectrum: Use per-FID struct for the VLAN-aware bridge") Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e732263849
commit
f1de7a28d5
|
@ -460,6 +460,9 @@ static int __mlxsw_sp_port_fid_join(struct mlxsw_sp_port *mlxsw_sp_port,
|
||||||
{
|
{
|
||||||
struct mlxsw_sp_fid *f;
|
struct mlxsw_sp_fid *f;
|
||||||
|
|
||||||
|
if (test_bit(fid, mlxsw_sp_port->active_vlans))
|
||||||
|
return 0;
|
||||||
|
|
||||||
f = mlxsw_sp_fid_find(mlxsw_sp_port->mlxsw_sp, fid);
|
f = mlxsw_sp_fid_find(mlxsw_sp_port->mlxsw_sp, fid);
|
||||||
if (!f) {
|
if (!f) {
|
||||||
f = mlxsw_sp_fid_create(mlxsw_sp_port->mlxsw_sp, fid);
|
f = mlxsw_sp_fid_create(mlxsw_sp_port->mlxsw_sp, fid);
|
||||||
|
|
Loading…
Reference in New Issue