RDMA/nldev: Refactor setting the nldev handle to a common function
authorLeon Romanovsky <leonro@mellanox.com>
Mon, 1 Jan 2018 11:07:14 +0000 (13:07 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Tue, 2 Jan 2018 20:36:57 +0000 (13:36 -0700)
The NLDEV commands are using IB device indexes and names as a handle
for netlink communications. Put all relevant code into one function
to remove code duplication in followup patches.

Reviewed-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/nldev.c

index 9a05245..2b63130 100644 (file)
@@ -54,14 +54,23 @@ static const struct nla_policy nldev_policy[RDMA_NLDEV_ATTR_MAX] = {
        [RDMA_NLDEV_ATTR_DEV_NODE_TYPE] = { .type = NLA_U8 },
 };
 
-static int fill_dev_info(struct sk_buff *msg, struct ib_device *device)
+static int fill_nldev_handle(struct sk_buff *msg, struct ib_device *device)
 {
-       char fw[IB_FW_VERSION_NAME_MAX];
-
        if (nla_put_u32(msg, RDMA_NLDEV_ATTR_DEV_INDEX, device->index))
                return -EMSGSIZE;
        if (nla_put_string(msg, RDMA_NLDEV_ATTR_DEV_NAME, device->name))
                return -EMSGSIZE;
+
+       return 0;
+}
+
+static int fill_dev_info(struct sk_buff *msg, struct ib_device *device)
+{
+       char fw[IB_FW_VERSION_NAME_MAX];
+
+       if (fill_nldev_handle(msg, device))
+               return -EMSGSIZE;
+
        if (nla_put_u32(msg, RDMA_NLDEV_ATTR_PORT_INDEX, rdma_end_port(device)))
                return -EMSGSIZE;
 
@@ -92,10 +101,9 @@ static int fill_port_info(struct sk_buff *msg,
        struct ib_port_attr attr;
        int ret;
 
-       if (nla_put_u32(msg, RDMA_NLDEV_ATTR_DEV_INDEX, device->index))
-               return -EMSGSIZE;
-       if (nla_put_string(msg, RDMA_NLDEV_ATTR_DEV_NAME, device->name))
+       if (fill_nldev_handle(msg, device))
                return -EMSGSIZE;
+
        if (nla_put_u32(msg, RDMA_NLDEV_ATTR_PORT_INDEX, port))
                return -EMSGSIZE;