diff --git a/src/debug.c b/src/debug.c index 05a21329b9..5f8e95c34a 100644 --- a/src/debug.c +++ b/src/debug.c @@ -47,8 +47,10 @@ HSAKMT_STATUS init_device_debugging_memory(unsigned int NumNodes) void destroy_device_debugging_memory(void) { - if (is_device_debugged) + if (is_device_debugged) { free(is_device_debugged); + is_device_debugged = NULL; + } } HSAKMT_STATUS HSAKMTAPI hsaKmtDbgRegister(HSAuint32 NodeId) diff --git a/src/openclose.c b/src/openclose.c index caaa6d924c..403d38de30 100644 --- a/src/openclose.c +++ b/src/openclose.c @@ -66,7 +66,10 @@ static void clear_after_fork(void) clear_events_page(); fmm_clear_all_mem(); destroy_device_debugging_memory(); - close(kfd_fd); + if (kfd_fd) { + close(kfd_fd); + kfd_fd = 0; + } kfd_open_count = 0; } @@ -172,7 +175,10 @@ HSAKMT_STATUS HSAKMTAPI hsaKmtCloseKFD(void) destroy_device_debugging_memory(); destroy_process_doorbells(); fmm_destroy_process_apertures(); - close(kfd_fd); + if (kfd_fd) { + close(kfd_fd); + kfd_fd = 0; + } } result = HSAKMT_STATUS_SUCCESS;