On Mon, Feb 11, 2019 at 01:56:08PM +0200, Leon Romanovsky wrote: > From: Leon Romanovsky <leonro@xxxxxxxxxxxx> > > 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@xxxxxxxxxxxx> > .../net/ethernet/mellanox/mlx5/core/main.c | 47 +++++++++++++------ > 1 file changed, 33 insertions(+), 14 deletions(-) > > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c > index 6d45518edbdc..d7145ab6105d 100644 > +++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c > @@ -459,6 +459,7 @@ static int handle_hca_cap_atomic(struct mlx5_core_dev *dev) > return err; > } > > +#ifdef CONFIG_INFINIBAND_ON_DEMAND_PAGING > static int handle_hca_cap_odp(struct mlx5_core_dev *dev) > { > void *set_hca_cap; > @@ -502,6 +503,7 @@ static int handle_hca_cap_odp(struct mlx5_core_dev *dev) > kfree(set_ctx); > return err; > } > +#endif > > static int handle_hca_cap(struct mlx5_core_dev *dev) > { > @@ -576,6 +578,35 @@ 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; > + } > + > +#ifdef CONFIG_INFINIBAND_ON_DEMAND_PAGING > + err = handle_hca_cap_odp(dev); > + if (err) { > + dev_err(&pdev->dev, "handle_hca_cap_odp failed\n"); > + goto out; > + } > +#endif Adding if (IS_ENABLED..) return 0; To the top of handle_hca_cap_odp is alot better. Jason