net/mlx5: E-Switch, Use correct flags when configuring vlan
authorBodong Wang <bodong@mellanox.com>
Fri, 28 Jun 2019 22:36:11 +0000 (22:36 +0000)
committerSaeed Mahameed <saeedm@mellanox.com>
Mon, 1 Jul 2019 23:40:30 +0000 (16:40 -0700)
Before the offending commit, vlan will be configured if either vlan
or qos is set. After the change with new set flags, function callers
should provide flags accordingly.

Fixes: e33dfe316cf3 ("net/mlx5: E-Switch, Allow fine tuning of eswitch vport push/pop vlan")
Signed-off-by: Bodong Wang <bodong@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c

index 67598272d4a911e3fd9124b7f460806ae13f40ea..0c75219d91b557059cc40c86eb9d76b1934a3800 100644 (file)
@@ -1553,6 +1553,7 @@ static void esw_apply_vport_conf(struct mlx5_eswitch *esw,
                                 struct mlx5_vport *vport)
 {
        int vport_num = vport->vport;
+       int flags;
 
        if (esw->manager_vport == vport_num)
                return;
@@ -1570,8 +1571,10 @@ static void esw_apply_vport_conf(struct mlx5_eswitch *esw,
                                                vport->info.node_guid);
        }
 
+       flags = (vport->info.vlan || vport->info.qos) ?
+               SET_VLAN_STRIP | SET_VLAN_INSERT : 0;
        modify_esw_vport_cvlan(esw->dev, vport_num, vport->info.vlan, vport->info.qos,
-                              (vport->info.vlan || vport->info.qos));
+                              flags);
 
        /* Only legacy mode needs ACLs */
        if (esw->mode == SRIOV_LEGACY) {