Commit 08e55de3 authored by Kamal Heib's avatar Kamal Heib Committed by Liu Jian
Browse files

RDMA/siw: Use helper function to set sys_image_guid

mainline inclusion
from mainline-v5.17-rc1
commit 0abfc79d
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBI67U
CVE: CVE-2024-57857

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0abfc79d724102ec91287e3e77ac8115fcf3ffe9

-------------------------------------------------

Use the addrconf_addr_eui48() helper function to set the sys_image_guid,
Also make sure the GUID is valid EUI-64 identifier.

Link: https://lore.kernel.org/r/20211124102336.427637-1-kamalheib1@gmail.com


Signed-off-by: default avatarKamal Heib <kamalheib1@gmail.com>
Acked-by: default avatarBernard Metzler <bmt@zurich.ibm.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
Signed-off-by: default avatarLiu Jian <liujian56@huawei.com>
parent a9118da6
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
#include <linux/uaccess.h>
#include <linux/vmalloc.h>
#include <linux/xarray.h>
#include <net/addrconf.h>

#include <rdma/iw_cm.h>
#include <rdma/ib_verbs.h>
@@ -155,7 +156,8 @@ int siw_query_device(struct ib_device *base_dev, struct ib_device_attr *attr,
	attr->vendor_id = SIW_VENDOR_ID;
	attr->vendor_part_id = sdev->vendor_part_id;

	memcpy(&attr->sys_image_guid, sdev->netdev->dev_addr, 6);
	addrconf_addr_eui48((u8 *)&attr->sys_image_guid,
			    sdev->netdev->dev_addr);

	return 0;
}