Skip to content

Commit

Permalink
net/mlx5: Factor out HCA capabilities functions
Browse files Browse the repository at this point in the history
Combine all HCA capabilities setters under one function
and compile out the ODP related function in case kernel
was compiled without ODP support.

Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
  • Loading branch information
Leon Romanovsky committed Feb 19, 2019
1 parent 08e8676 commit 37b6bb7
Showing 1 changed file with 31 additions and 15 deletions.
46 changes: 31 additions & 15 deletions drivers/net/ethernet/mellanox/mlx5/core/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -467,7 +467,8 @@ static int handle_hca_cap_odp(struct mlx5_core_dev *dev)
int set_sz;
int err;

if (!MLX5_CAP_GEN(dev, pg))
if (!IS_ENABLED(CONFIG_INFINIBAND_ON_DEMAND_PAGING) ||
!MLX5_CAP_GEN(dev, pg))
return 0;

err = mlx5_core_get_caps(dev, MLX5_CAP_ODP);
Expand Down Expand Up @@ -577,6 +578,33 @@ static int handle_hca_cap(struct mlx5_core_dev *dev)
return err;
}

static int set_hca_cap(struct mlx5_core_dev *dev)
{
struct pci_dev *pdev = dev->pdev;
int err;

err = handle_hca_cap(dev);
if (err) {
dev_err(&pdev->dev, "handle_hca_cap failed\n");
goto out;
}

err = handle_hca_cap_atomic(dev);
if (err) {
dev_err(&pdev->dev, "handle_hca_cap_atomic failed\n");
goto out;
}

err = handle_hca_cap_odp(dev);
if (err) {
dev_err(&pdev->dev, "handle_hca_cap_odp failed\n");
goto out;
}

out:
return err;
}

static int set_hca_ctrl(struct mlx5_core_dev *dev)
{
struct mlx5_reg_host_endianness he_in;
Expand Down Expand Up @@ -969,21 +997,9 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv,
goto reclaim_boot_pages;
}

err = handle_hca_cap(dev);
if (err) {
dev_err(&pdev->dev, "handle_hca_cap failed\n");
goto reclaim_boot_pages;
}

err = handle_hca_cap_atomic(dev);
if (err) {
dev_err(&pdev->dev, "handle_hca_cap_atomic failed\n");
goto reclaim_boot_pages;
}

err = handle_hca_cap_odp(dev);
err = set_hca_cap(dev);
if (err) {
dev_err(&pdev->dev, "handle_hca_cap_odp failed\n");
dev_err(&pdev->dev, "set_hca_cap failed\n");
goto reclaim_boot_pages;
}

Expand Down

0 comments on commit 37b6bb7

Please sign in to comment.