Subject: Re: [PATCH mlx5-next 12/12] net/mlx5: Set ODP SRQ support in firmware

From: Leon Romanovsky <[email-masked]>
Date: Sun, 3 Feb 2019 11:03:11 +0200

On Thu, Jan 31, 2019 at 04:28:44PM -0700, Jason Gunthorpe wrote:
> On Tue, Jan 22, 2019 at 08:48:51AM +0200, Leon Romanovsky wrote:
> > From: Moni Shoua <[email-masked]>
> >
> > To avoid compatibility issue with older kernels the firmware doesn't
> > allow SRQ to work with ODP unless kernel asks for it.
> >
> > Signed-off-by: Moni Shoua <[email-masked]>
> > Reviewed-by: Majd Dibbiny <[email-masked]>
> > Signed-off-by: Leon Romanovsky <[email-masked]>
> >  .../net/ethernet/mellanox/mlx5/core/main.c    | 53 +++++++++++++++++++
> >  include/linux/mlx5/device.h                   |  3 ++
> >  include/linux/mlx5/mlx5_ifc.h                 |  1 +
> >  3 files changed, 57 insertions(+)
> >
> > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c
> > index be81b319b0dc..b3a76df0cf6c 100644
> > +++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c
> > @@ -459,6 +459,53 @@ static int handle_hca_cap_atomic(struct mlx5_core_dev *dev)
> >  	return err;
> >  }
> >
> > +static int handle_hca_cap_odp(struct mlx5_core_dev *dev)
> > +{
> > +	void *set_ctx;
> > +	void *set_hca_cap;
> > +	int set_sz = MLX5_ST_SZ_BYTES(set_hca_cap_in);
> > +	int err;
> > +
> > +	if (!MLX5_CAP_GEN(dev, pg))
> > +		return 0;
>
> Should a
>
>     if (IS_ENABLED(CONFIG_INFINIBAND_ON_DEMAND_PAGING))
>              return 0;
>
> Be here?

We had similar discussion in mlx5_ib main.c, but here we are talking
about mlx5_core code, which from my point of view should represent the
real HW capabilities without relation to kernel compilation mode.

Thanks

> Jason