Change uuid_info file read to uuid generation

Signed-off-by: Maisam Arif <maisarif@amd.com>
Change-Id: I77f2c6b44efd6faae3c2466989e1caeaad16669d


[ROCm/amdsmi commit: 8a9f862dbf]
Этот коммит содержится в:
Maisam Arif
2023-09-22 03:15:38 -05:00
коммит произвёл Maisam Arif
родитель 2e3bf6eb1a
Коммит b6630e0200
+5 -20
Просмотреть файл
@@ -1736,7 +1736,7 @@ amdsmi_status_t
amdsmi_get_gpu_device_uuid(amdsmi_processor_handle processor_handle, unsigned int *uuid_length, char *uuid) {
AMDSMI_CHECK_INIT();
if (uuid_length == nullptr || uuid == nullptr) {
if (uuid_length == nullptr || uuid == nullptr || uuid_length == nullptr || *uuid_length < AMDSMI_GPU_UUID_SIZE) {
return AMDSMI_STATUS_INVAL;
}
@@ -1748,35 +1748,20 @@ amdsmi_get_gpu_device_uuid(amdsmi_processor_handle processor_handle, unsigned in
amdsmi_status_t status = AMDSMI_STATUS_SUCCESS;
SMIGPUDEVICE_MUTEX(gpu_device->get_mutex())
FILE *fp;
size_t len = AMDSMI_GPU_UUID_SIZE;
ssize_t nread;
amdsmi_asic_info_t asic_info = {};
const uint8_t fcn = 0xff;
std::string path = "/sys/class/drm/" + gpu_device->get_gpu_path() + "/device/uuid_info";
status = amdsmi_get_gpu_asic_info(processor_handle, &asic_info);
if (status != AMDSMI_STATUS_SUCCESS) {
printf("Getting asic info failed. Return code: %d", status);
return status;
}
fp = fopen(path.c_str(), "rb");
if (!fp) {
/* generate random UUID */
status = amdsmi_uuid_gen(uuid, strtoul(asic_info.asic_serial, nullptr, AMDSMI_NORMAL_STRING_LENGTH), (uint16_t)asic_info.device_id, fcn);
return status;
}
nread = getline(&uuid, &len, fp);
if (nread <= 0) {
/* generate random UUID */
status = amdsmi_uuid_gen(uuid, strtoul(asic_info.asic_serial, nullptr, AMDSMI_NORMAL_STRING_LENGTH), (uint16_t)asic_info.device_id, fcn);
fclose(fp);
return status;
}
fclose(fp);
/* generate random UUID */
status = amdsmi_uuid_gen(uuid,
strtoull(asic_info.asic_serial, nullptr, 16),
(uint16_t)asic_info.device_id, fcn);
return status;
}