]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
RDMA/efa: Add support for node guid
authorYehuda Yitschak <yehuday@amazon.com>
Thu, 22 Aug 2024 17:11:43 +0000 (17:11 +0000)
committerJason Gunthorpe <jgg@nvidia.com>
Fri, 23 Aug 2024 14:52:45 +0000 (11:52 -0300)
Propagate the unique, per device, ID in the device attributes to the
standard node_guid value in IB device.

Link: https://patch.msgid.link/r/20240822171143.2800-1-mrgolin@amazon.com
Reviewed-by: Yonatan Nachum <ynachum@amazon.com>
Signed-off-by: Yehuda Yitschak <yehuday@amazon.com>
Signed-off-by: Michael Margolin <mrgolin@amazon.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/efa/efa_admin_cmds_defs.h
drivers/infiniband/hw/efa/efa_com_cmd.c
drivers/infiniband/hw/efa/efa_com_cmd.h
drivers/infiniband/hw/efa/efa_main.c

index 4296662e59c397bca2cdc13cc8eef269b23c51c1..cd03a5429beb52808c69023838b1641a3f6d5ed4 100644 (file)
@@ -674,6 +674,9 @@ struct efa_admin_feature_device_attr_desc {
 
        /* Max RDMA transfer size in bytes */
        u32 max_rdma_size;
+
+       /* Unique global ID for an EFA device */
+       u64 guid;
 };
 
 struct efa_admin_feature_queue_attr_desc {
index 5b9c2b16df0e5f693c35ecbb4739a808cf0abfdd..5a774925cdea956e2343b0082654b6056df44789 100644 (file)
@@ -465,6 +465,7 @@ int efa_com_get_device_attr(struct efa_com_dev *edev,
        result->db_bar = resp.u.device_attr.db_bar;
        result->max_rdma_size = resp.u.device_attr.max_rdma_size;
        result->device_caps = resp.u.device_attr.device_caps;
+       result->guid = resp.u.device_attr.guid;
 
        if (result->admin_api_version < 1) {
                ibdev_err_ratelimited(
index 9714105fcf7ec199af376b03d11f451cf24bf2dd..668d033f74776236b5369a06a60ae83dd6331f98 100644 (file)
@@ -112,6 +112,7 @@ struct efa_com_get_device_attr_result {
        u8 addr[EFA_GID_SIZE];
        u64 page_size_cap;
        u64 max_mr_pages;
+       u64 guid;
        u32 mtu;
        u32 fw_version;
        u32 admin_api_version;
index 1a777791bea35fb0a19898fc73253d6dfce39b9f..ad225823e6f2fe772f74862064b009ca941ef67a 100644 (file)
@@ -441,6 +441,7 @@ static int efa_ib_device_add(struct efa_dev *dev)
        efa_set_host_info(dev);
 
        dev->ibdev.node_type = RDMA_NODE_UNSPECIFIED;
+       dev->ibdev.node_guid = dev->dev_attr.guid;
        dev->ibdev.phys_port_cnt = 1;
        dev->ibdev.num_comp_vectors = dev->neqs ?: 1;
        dev->ibdev.dev.parent = &pdev->dev;