On Mon, Jan 07, 2019 at 10:15:20AM +0200, Leon Romanovsky wrote: > On Mon, Jan 07, 2019 at 10:08:11AM +0200, Gal Pressman wrote: > > On 06-Jan-19 23:39, Jason Gunthorpe wrote: > > > On Sun, Jan 06, 2019 at 11:23:02AM +0200, Gal Pressman wrote: > > >> Drivers that do not provide kernel verbs support should not be used by > > >> ib kernel clients and fail. > > >> In case a device does not implement all mandatory verbs for kverbs usage > > >> mark it as a non kverbs provider and prevent its usage for all clients > > >> except for uverbs. > > >> > > >> The device is marked as a non kverbs provider using the > > >> 'kverbs_provider' flag which should only be set by the core code. > > >> The clients can choose whether kverbs are requested for it usage using > > >> the 'no_kverbs_req' flag which is currently set for uverbs only. > > >> > > >> This patch allows drivers to remove mandatory verbs stubs and simply set > > >> the callback to NULL. The IB device will be registered as a non-kverbs > > >> provider. > > >> > > >> Signed-off-by: Gal Pressman <galpress@xxxxxxxxxx> > > >> drivers/infiniband/core/device.c | 12 ++++++++---- > > >> drivers/infiniband/core/uverbs_main.c | 1 + > > >> include/rdma/ib_verbs.h | 5 +++++ > > >> 3 files changed, 14 insertions(+), 4 deletions(-) > > >> > > >> diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c > > >> index 47ab34ee1a9d..6c1f71007ec4 100644 > > >> +++ b/drivers/infiniband/core/device.c > > >> @@ -121,13 +121,15 @@ static int ib_device_check_mandatory(struct ib_device *device) > > >> }; > > >> int i; > > >> > > >> + device->kverbs_provider = true; > > >> for (i = 0; i < ARRAY_SIZE(mandatory_table); ++i) { > > >> if (!*(void **) ((void *) &device->ops + > > >> mandatory_table[i].offset)) { > > >> dev_warn(&device->dev, > > >> - "Device is missing mandatory function %s\n", > > >> + "Device is missing mandatory function %s, disabling kverbs support\n", > > >> mandatory_table[i].name); > > > > > > Why not get rid of the message? > > > > Will do. > > You need to be nice to users, and I see value in this warning. If we are supporting this we should not have dev_warns for a normal occurance. Something like RDMA tool should report no-kverbs or somesuch instead Jason