On Tue, Jun 18, 2019 at 07:53:38PM +0300, Leon Romanovsky wrote: > On Tue, Jun 18, 2019 at 11:55:08AM -0400, Doug Ledford wrote: > > On Tue, 2019-06-18 at 10:10 -0300, Jason Gunthorpe wrote: > > > On Tue, Jun 18, 2019 at 03:17:09PM +0300, Leon Romanovsky wrote: > > > > > /** > > > > > * ib_set_client_data - Set IB client context > > > > > * @device:Device to set context for > > > > > diff --git a/drivers/infiniband/core/nldev.c > > > > > b/drivers/infiniband/core/nldev.c > > > > > index 69188cbbd99bd5..55eccea628e99f 100644 > > > > > +++ b/drivers/infiniband/core/nldev.c > > > > > @@ -120,6 +120,9 @@ static const struct nla_policy > > > > > nldev_policy[RDMA_NLDEV_ATTR_MAX] = { > > > > > [RDMA_NLDEV_ATTR_DEV_PROTOCOL] = { .type = > > > > > NLA_NUL_STRING, > > > > > .len = RDMA_NLDEV_ATTR_ENTRY_STRLEN > > > > > }, > > > > > [RDMA_NLDEV_NET_NS_FD] = { .type = > > > > > NLA_U32 }, > > > > > + [RDMA_NLDEV_ATTR_CHARDEV_TYPE] = { .type = > > > > > NLA_NUL_STRING, > > > > > + .len = 128 }, > > > > > + [RDMA_NLDEV_ATTR_PORT_INDEX] = { .type = NLA_U32 }, > > > > > > > > It is wrong, we already have RDMA_NLDEV_ATTR_PORT_INDEX declared in > > > > nla_policy. > > > > But we don't have other RDMA_NLDEV_ATTR_CHARDEV_* declarations > > > > here. > > > > > > Doug can you fix it? > > > > I haven't pushed my wip to for-next yet, so yeah, I can fix it. We > > just need to decide on what the full fix is ;-) > > > > Drop the duplicate ATTR_PORT_INDEX, but what about a final decision on > > including the outputs for possible future type checking? You and Leon > > seem to be going back and forth, and I don't have strong feelings > > either way on this one. It's just a definition statement, not like > > it's a dead subroutine. > > I have a very strong opinion about it. Then Doug should add the policies, here are the output values from the userspace: [RDMA_NLDEV_ATTR_CHARDEV] = { .type = NLA_U64 }, [RDMA_NLDEV_ATTR_CHARDEV_ABI] = { .type = NLA_U64 }, [RDMA_NLDEV_ATTR_DEV_INDEX] = { .type = NLA_U32 }, [RDMA_NLDEV_ATTR_DEV_NODE_TYPE] = { .type = NLA_U8 }, [RDMA_NLDEV_ATTR_NODE_GUID] = { .type = NLA_U64 }, [RDMA_NLDEV_ATTR_UVERBS_DRIVER_ID] = { .type = NLA_U32 }, [RDMA_NLDEV_ATTR_CHARDEV_NAME] = { .type = NLA_NUL_STRING }, [RDMA_NLDEV_ATTR_DEV_NAME] = { .type = NLA_NUL_STRING }, [RDMA_NLDEV_ATTR_DEV_PROTOCOL] = { .type = NLA_NUL_STRING }, [RDMA_NLDEV_ATTR_FW_VERSION] = { .type = NLA_NUL_STRING }, Jason