[PATCH for-next] RDMA/nldev: Add parent bdf to device information dump

Gal Pressman
2020-11-03T13:26:50Z

Add the ability to query the device's bdf through rdma tool netlink
command (in addition to the sysfs infra).

In case of virtual devices (rxe/siw), the netdev bdf will be shown.

Signed-off-by: Gal Pressman <galpress@amazon.com>
---
drivers/infiniband/core/nldev.c | 10 +++++++++-
include/uapi/rdma/rdma_netlink.h | 5 +++++
2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/core/nldev.c b/drivers/infiniband/core/nldev.c
index 12d29d54a081..9704b1449c01 100644
--- a/drivers/infiniband/core/nldev.c
+++ b/drivers/infiniband/core/nldev.c
@@ -291,7 +291,15 @@ static int fill_dev_info(struct sk_buff *msg, struct ib_device *device)
else if (rdma_protocol_usnic(device, port))
ret = nla_put_string(msg, RDMA_NLDEV_ATTR_DEV_PROTOCOL,
"usnic");
- return ret;
+ if (ret)
+ return ret;
+
+ if (device->dev.parent)
+ if (nla_put_string(msg, RDMA_NLDEV_PARENT_BDF,
+ dev_name(device->dev.parent)))
+ return -EMSGSIZE;
+
+ return 0;
}

static int fill_port_info(struct sk_buff *msg,
diff --git a/include/uapi/rdma/rdma_netlink.h b/include/uapi/rdma/rdma_netlink.h
index d2f5b8396243..7495104668eb 100644
--- a/include/uapi/rdma/rdma_netlink.h
+++ b/include/uapi/rdma/rdma_netlink.h
@@ -533,6 +533,11 @@ enum rdma_nldev_attr {

RDMA_NLDEV_ATTR_RES_RAW, /* binary */

+ /*
+ * Parent device BDF (bus, device, function).
+ */
+ RDMA_NLDEV_PARENT_BDF, /* string */
+
/*
* Always the end
*/
--
2.29.1