RDMA/cxgb4: Use helper function to set GUIDs
authorKamal Heib <kamalheib1@gmail.com>
Thu, 18 Nov 2021 10:04:56 +0000 (12:04 +0200)
committerJason Gunthorpe <jgg@nvidia.com>
Fri, 19 Nov 2021 15:44:21 +0000 (11:44 -0400)
Use the addrconf_addr_eui48() helper function to set the GUIDs, Also make
sure the GUIDs are valid EUI-64 identifiers.

Link: https://lore.kernel.org/r/20211118100456.45423-1-kamalheib1@gmail.com
Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/cxgb4/provider.c

index 0c8fd5a..89f36a3 100644 (file)
@@ -41,6 +41,7 @@
 #include <linux/ethtool.h>
 #include <linux/rtnetlink.h>
 #include <linux/inetdevice.h>
+#include <net/addrconf.h>
 #include <linux/io.h>
 
 #include <asm/irq.h>
@@ -264,7 +265,8 @@ static int c4iw_query_device(struct ib_device *ibdev, struct ib_device_attr *pro
                return -EINVAL;
 
        dev = to_c4iw_dev(ibdev);
-       memcpy(&props->sys_image_guid, dev->rdev.lldi.ports[0]->dev_addr, 6);
+       addrconf_addr_eui48((u8 *)&props->sys_image_guid,
+                           dev->rdev.lldi.ports[0]->dev_addr);
        props->hw_ver = CHELSIO_CHIP_RELEASE(dev->rdev.lldi.adapter_type);
        props->fw_ver = dev->rdev.lldi.fw_vers;
        props->device_cap_flags = dev->device_cap_flags;
@@ -525,8 +527,8 @@ void c4iw_register_device(struct work_struct *work)
        struct c4iw_dev *dev = ctx->dev;
 
        pr_debug("c4iw_dev %p\n", dev);
-       memset(&dev->ibdev.node_guid, 0, sizeof(dev->ibdev.node_guid));
-       memcpy(&dev->ibdev.node_guid, dev->rdev.lldi.ports[0]->dev_addr, 6);
+       addrconf_addr_eui48((u8 *)&dev->ibdev.node_guid,
+                           dev->rdev.lldi.ports[0]->dev_addr);
        dev->device_cap_flags = IB_DEVICE_LOCAL_DMA_LKEY | IB_DEVICE_MEM_WINDOW;
        if (fastreg_support)
                dev->device_cap_flags |= IB_DEVICE_MEM_MGT_EXTENSIONS;