From 29a981ecab5cc6fc787feb0b6ae6555b50755284 Mon Sep 17 00:00:00 2001 From: Marko Oblak Date: Thu, 13 Apr 2023 15:21:08 +0200 Subject: [PATCH] SWDEV-394359 - [AMDSMI] [Linux] [Guest] Resolved issue: status string and socket info API failing Signed-off-by: Marko Oblak Change-Id: I6fe3beafbf2cd3d2701dd5f78dac2bcf2d9b3aa9 [ROCm/amdsmi commit: 5e168c8f6a71b9a0b7dcc2421b523eaddf54c105] --- projects/amdsmi/py-interface/amdsmi_interface.py | 11 ++++++----- projects/amdsmi/src/amd_smi/amd_smi.cc | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/projects/amdsmi/py-interface/amdsmi_interface.py b/projects/amdsmi/py-interface/amdsmi_interface.py index 0542fed5da..5b1d888150 100644 --- a/projects/amdsmi/py-interface/amdsmi_interface.py +++ b/projects/amdsmi/py-interface/amdsmi_interface.py @@ -503,7 +503,7 @@ def amdsmi_get_socket_info(socket_handle): _check_res( amdsmi_wrapper.amdsmi_get_socket_info( - socket_handle, ctypes.byref(socket_info), ctypes.c_size_t(128)) + socket_handle, socket_info, ctypes.c_size_t(128)) ) return socket_info.value.decode() @@ -2489,11 +2489,12 @@ def amdsmi_status_string(status: amdsmi_wrapper.amdsmi_status_t) -> str: if not isinstance(status, amdsmi_wrapper.amdsmi_status_t): raise AmdSmiParameterException(status, amdsmi_wrapper.amdsmi_status_t) - status_string = ctypes.c_char_p() - _check_res(amdsmi_wrapper.amdsmi_status_string( - status, ctypes.byref(status_string))) + status_string_p_p = ctypes.pointer(ctypes.pointer(ctypes.c_char())) - return amdsmi_wrapper.string_cast(status_string) + _check_res(amdsmi_wrapper.amdsmi_status_string( + status, status_string_p_p)) + + return amdsmi_wrapper.string_cast(status_string_p_p.contents) def amdsmi_get_compute_process_info() -> List[Dict[str, int]]: diff --git a/projects/amdsmi/src/amd_smi/amd_smi.cc b/projects/amdsmi/src/amd_smi/amd_smi.cc index 31657c0ad0..181b87d6f4 100644 --- a/projects/amdsmi/src/amd_smi/amd_smi.cc +++ b/projects/amdsmi/src/amd_smi/amd_smi.cc @@ -144,7 +144,7 @@ amdsmi_status_string(amdsmi_status_t status, const char **status_string) { *status_string = "FAIL_LOAD_MODULE: Fail to load module."; break; case AMDSMI_STATUS_FAIL_LOAD_SYMBOL: - *status_string = "FAIL_LOAD_SYMOBL: Fail to load symbol."; + *status_string = "FAIL_LOAD_SYMBOL: Fail to load symbol."; break; case AMDSMI_STATUS_DRM_ERROR: *status_string = "DRM_ERROR: Fail to run function in libdrm.";