RDMA/ocrdma: Use helper function to set GUIDs
authorKamal Heib <kamalheib1@gmail.com>
Wed, 17 Nov 2021 09:02:05 +0000 (11:02 +0200)
committerJason Gunthorpe <jgg@nvidia.com>
Wed, 17 Nov 2021 20:52:07 +0000 (16:52 -0400)
Use addrconf_addr_eui48() helper function to set the GUIDs and remove the
driver specific version.

Link: https://lore.kernel.org/r/20211117090205.96523-1-kamalheib1@gmail.com
Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/ocrdma/ocrdma_main.c
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
drivers/infiniband/hw/ocrdma/ocrdma_verbs.h

index 7abf6cf..5d4b3bc 100644 (file)
@@ -62,20 +62,6 @@ MODULE_DESCRIPTION(OCRDMA_ROCE_DRV_DESC " " OCRDMA_ROCE_DRV_VERSION);
 MODULE_AUTHOR("Emulex Corporation");
 MODULE_LICENSE("Dual BSD/GPL");
 
-void ocrdma_get_guid(struct ocrdma_dev *dev, u8 *guid)
-{
-       u8 mac_addr[6];
-
-       memcpy(&mac_addr[0], &dev->nic_info.mac_addr[0], ETH_ALEN);
-       guid[0] = mac_addr[0] ^ 2;
-       guid[1] = mac_addr[1];
-       guid[2] = mac_addr[2];
-       guid[3] = 0xff;
-       guid[4] = 0xfe;
-       guid[5] = mac_addr[3];
-       guid[6] = mac_addr[4];
-       guid[7] = mac_addr[5];
-}
 static enum rdma_link_layer ocrdma_link_layer(struct ib_device *device,
                                              u32 port_num)
 {
@@ -203,7 +189,8 @@ static int ocrdma_register_device(struct ocrdma_dev *dev)
 {
        int ret;
 
-       ocrdma_get_guid(dev, (u8 *)&dev->ibdev.node_guid);
+       addrconf_addr_eui48((u8 *)&dev->ibdev.node_guid,
+                           dev->nic_info.mac_addr);
        BUILD_BUG_ON(sizeof(OCRDMA_NODE_DESC) > IB_DEVICE_NODE_DESC_MAX);
        memcpy(dev->ibdev.node_desc, OCRDMA_NODE_DESC,
               sizeof(OCRDMA_NODE_DESC));
index 735123d..72629e7 100644 (file)
@@ -41,6 +41,7 @@
  */
 
 #include <linux/dma-mapping.h>
+#include <net/addrconf.h>
 #include <rdma/ib_verbs.h>
 #include <rdma/ib_user_verbs.h>
 #include <rdma/iw_cm.h>
@@ -74,7 +75,8 @@ int ocrdma_query_device(struct ib_device *ibdev, struct ib_device_attr *attr,
        memset(attr, 0, sizeof *attr);
        memcpy(&attr->fw_ver, &dev->attr.fw_ver[0],
               min(sizeof(dev->attr.fw_ver), sizeof(attr->fw_ver)));
-       ocrdma_get_guid(dev, (u8 *)&attr->sys_image_guid);
+       addrconf_addr_eui48((u8 *)&attr->sys_image_guid,
+                           dev->nic_info.mac_addr);
        attr->max_mr_size = dev->attr.max_mr_size;
        attr->page_size_cap = 0xffff000;
        attr->vendor_id = dev->nic_info.pdev->vendor;
index b73d742..f860b7f 100644 (file)
@@ -59,7 +59,6 @@ int ocrdma_query_port(struct ib_device *ibdev, u32 port,
 enum rdma_protocol_type
 ocrdma_query_protocol(struct ib_device *device, u32 port_num);
 
-void ocrdma_get_guid(struct ocrdma_dev *, u8 *guid);
 int ocrdma_query_pkey(struct ib_device *ibdev, u32 port, u16 index, u16 *pkey);
 
 int ocrdma_alloc_ucontext(struct ib_ucontext *uctx, struct ib_udata *udata);