net/mlx5: E-Switch, Dedicated metadata for uplink vport
authorVu Pham <vuhuong@mellanox.com>
Tue, 23 Jun 2020 18:53:34 +0000 (11:53 -0700)
committerSaeed Mahameed <saeedm@nvidia.com>
Tue, 15 Sep 2020 18:59:51 +0000 (11:59 -0700)
Uplink vport must have a dedicated metadata with vhca_id
being part of the metadata.

Fixes: 133dcfc577ea ("net/mlx5: E-Switch, Alloc and free unique metadata for match")
Signed-off-by: Vu Pham <vuhuong@mellanox.com>
Reviewed-by: Mark Bloch <mbloch@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c

index 4cbadb1..9c740ce 100644 (file)
@@ -1908,9 +1908,6 @@ void mlx5_esw_match_metadata_free(struct mlx5_eswitch *esw, u32 metadata)
 static int esw_offloads_vport_metadata_setup(struct mlx5_eswitch *esw,
                                             struct mlx5_vport *vport)
 {
-       if (vport->vport == MLX5_VPORT_UPLINK)
-               return 0;
-
        vport->default_metadata = mlx5_esw_match_metadata_alloc(esw);
        vport->metadata = vport->default_metadata;
        return vport->metadata ? 0 : -ENOSPC;
@@ -1919,7 +1916,7 @@ static int esw_offloads_vport_metadata_setup(struct mlx5_eswitch *esw,
 static void esw_offloads_vport_metadata_cleanup(struct mlx5_eswitch *esw,
                                                struct mlx5_vport *vport)
 {
-       if (vport->vport == MLX5_VPORT_UPLINK || !vport->default_metadata)
+       if (!vport->default_metadata)
                return;
 
        WARN_ON(vport->metadata != vport->default_metadata);