Subject: Re: [PATCH rdma-next 1/8] RDMA/core: Check if client supports IB device or not

From: Leon Romanovsky <[email-masked]>
Date: Mon, 5 Apr 2021 11:46:52 +0300

On Mon, Apr 05, 2021 at 09:20:32AM +0300, Gal Pressman wrote:
> On 05/04/2021 8:49, Leon Romanovsky wrote:
> > From: Parav Pandit <[email-masked]>
> > 
> > RDMA devices are of different transport(iWarp, IB, RoCE) and have
> > different attributes.
> > Not all clients are interested in all type of devices.
> > 
> > Implement a generic callback that each IB client can implement to decide
> > if client add() or remove() should be done by the IB core or not for a
> > given IB device, client combination.
> > 
> > Signed-off-by: Parav Pandit <[email-masked]>
> > Signed-off-by: Leon Romanovsky <[email-masked]>
> > ---
> >  drivers/infiniband/core/device.c | 3 +++
> >  include/rdma/ib_verbs.h          | 9 +++++++++
> >  2 files changed, 12 insertions(+)
> > 
> > diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
> > index c660cef66ac6..c9af2deba8c1 100644
> > --- a/drivers/infiniband/core/device.c
> > +++ b/drivers/infiniband/core/device.c
> > @@ -691,6 +691,9 @@ static int add_client_context(struct ib_device *device,
> >  	if (!device->kverbs_provider && !client->no_kverbs_req)
> >  		return 0;
> >  
> > +	if (client->is_supported && !client->is_supported(device))
> > +		return 0;
> 
> Isn't it better to remove the kverbs_provider flag (from previous if statement)
> and unify it with this generic support check?

I thought about it, but didn't find it worth. The kverbs_provider needs
to be provided by device and all ULPs except uverbs will have the same check.

Thanks