mlxsw: spectrum_flower: Do not stop at FLOW_ACTION_VLAN_MANGLE
authorPetr Machata <petrm@mellanox.com>
Sun, 5 Apr 2020 06:50:22 +0000 (09:50 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 Apr 2020 17:14:00 +0000 (10:14 -0700)
The handler for FLOW_ACTION_VLAN_MANGLE ends by returning whatever the
lower-level function that it calls returns. If there are more actions lined
up after this action, those are never offloaded. Fix by only bailing out
when the called function returns an error.

Fixes: a150201a70da ("mlxsw: spectrum: Add support for vlan modify TC action")
Signed-off-by: Petr Machata <petrm@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c

index 69f77615c816901da6c94031b453c65714695dbe..51117a5a6bbf2764221c8707d854322e1327748a 100644 (file)
@@ -150,9 +150,12 @@ static int mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp,
                        u8 prio = act->vlan.prio;
                        u16 vid = act->vlan.vid;
 
-                       return mlxsw_sp_acl_rulei_act_vlan(mlxsw_sp, rulei,
-                                                          act->id, vid,
-                                                          proto, prio, extack);
+                       err = mlxsw_sp_acl_rulei_act_vlan(mlxsw_sp, rulei,
+                                                         act->id, vid,
+                                                         proto, prio, extack);
+                       if (err)
+                               return err;
+                       break;
                        }
                case FLOW_ACTION_PRIORITY:
                        err = mlxsw_sp_acl_rulei_act_priority(mlxsw_sp, rulei,