summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2018-06-04 20:27:58 +0300
committerDavid S. Miller <davem@davemloft.net>2018-06-04 20:27:58 +0300
commit20677108c51b467e2325554f47f13b5666d49ffe (patch)
treee2810cab7050fd561b60637d945421b430681996
parentfa1be7e01ea863e911349e30456706749518eeab (diff)
parent1fc68bb7c33fbef2216f361cfc23e41984a5edb1 (diff)
downloadlinux-20677108c51b467e2325554f47f13b5666d49ffe.tar.xz
Merge branch 'mlxsw-Fixes-in-offloading-of-mirror-to-gretap'
Ido Schimmel says: ==================== mlxsw: Fixes in offloading of mirror-to-gretap Petr says: These two patches fix issues in offloading of mirror-to-gretap when bridge is present in the underlay. In patch #1, reconsideration of SPAN configuration is not done right at the point that SWITCHDEV_OBJ_ID_PORT_VLAN deletion notification is distributed, but is postponed, because the notifications are actually distributed before the relevant change is implemented in the bridge. In patch #2, a problem in configuring VLAN tagging in situations when a VLAN device is on top of an 802.1Q bridge whose egress port is marked as "egress untagged". In that case, mlxsw would neglect to suppress the tagging implicitly assumed after the VLAN device was seen. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c4
-rw-r--r--drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
index da3f7f527360..3d187d88cc7c 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
@@ -191,7 +191,9 @@ mlxsw_sp_span_entry_bridge_8021q(const struct net_device *br_dev,
if (br_vlan_get_info(edev, vid, &vinfo))
return NULL;
- if (!(vinfo.flags & BRIDGE_VLAN_INFO_UNTAGGED))
+ if (vinfo.flags & BRIDGE_VLAN_INFO_UNTAGGED)
+ *p_vid = 0;
+ else
*p_vid = vid;
return edev;
}
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
index 8a15ac49cb5a..e97652c40d13 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
@@ -1856,7 +1856,7 @@ static int mlxsw_sp_port_obj_del(struct net_device *dev,
break;
}
- mlxsw_sp_span_respin(mlxsw_sp_port->mlxsw_sp);
+ mlxsw_sp_span_respin_schedule(mlxsw_sp_port->mlxsw_sp);
return err;
}