lkml.org 
[lkml]   [2021]   [Jan]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 107/152] net/mlx5: E-Switch, fix changing vf VLANID
    Date
    From: Alaa Hleihel <alaa@nvidia.com>

    [ Upstream commit 25c904b59aaf4816337acd415514b0c47715f604 ]

    Adding vf VLANID for the first time, or after having cleared previously
    defined VLANID works fine, however, attempting to change an existing vf
    VLANID clears the rules on the firmware, but does not add new rules for
    the new vf VLANID.

    Fix this by changing the logic in function esw_acl_egress_lgcy_setup()
    so that it will always configure egress rules.

    Fixes: ea651a86d468 ("net/mlx5: E-Switch, Refactor eswitch egress acl codes")
    Signed-off-by: Alaa Hleihel <alaa@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    .../mellanox/mlx5/core/esw/acl/egress_lgcy.c | 27 +++++++++----------
    1 file changed, 13 insertions(+), 14 deletions(-)

    diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_lgcy.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_lgcy.c
    index 2b85d4777303a..3e19b1721303f 100644
    --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_lgcy.c
    +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_lgcy.c
    @@ -95,22 +95,21 @@ int esw_acl_egress_lgcy_setup(struct mlx5_eswitch *esw,
    return 0;
    }

    - if (!IS_ERR_OR_NULL(vport->egress.acl))
    - return 0;
    -
    - vport->egress.acl = esw_acl_table_create(esw, vport->vport,
    - MLX5_FLOW_NAMESPACE_ESW_EGRESS,
    - table_size);
    - if (IS_ERR(vport->egress.acl)) {
    - err = PTR_ERR(vport->egress.acl);
    - vport->egress.acl = NULL;
    - goto out;
    + if (!vport->egress.acl) {
    + vport->egress.acl = esw_acl_table_create(esw, vport->vport,
    + MLX5_FLOW_NAMESPACE_ESW_EGRESS,
    + table_size);
    + if (IS_ERR(vport->egress.acl)) {
    + err = PTR_ERR(vport->egress.acl);
    + vport->egress.acl = NULL;
    + goto out;
    + }
    +
    + err = esw_acl_egress_lgcy_groups_create(esw, vport);
    + if (err)
    + goto out;
    }

    - err = esw_acl_egress_lgcy_groups_create(esw, vport);
    - if (err)
    - goto out;
    -
    esw_debug(esw->dev,
    "vport[%d] configure egress rules, vlan(%d) qos(%d)\n",
    vport->vport, vport->info.vlan, vport->info.qos);
    --
    2.27.0


    \
     
     \ /
      Last update: 2021-01-18 13:29    [W:4.032 / U:0.376 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site