l0_feature: Use L0 Loader teardown callback

Related-To: LOCI-4174

- Call zelSetDriverTeardown during L0 Driver teardown to prevent users
from calling into destroyed functions and encountering crashes
during teardown.

Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
This commit is contained in:
Neil R Spruit
2023-03-22 01:22:13 +00:00
committed by Compute-Runtime-Automation
parent ac7a5376f2
commit d31b950b9a
19 changed files with 217 additions and 25 deletions

View File

@@ -5,8 +5,7 @@
*
*/
#include "level_zero/core/source/driver/driver_handle_imp.h"
#include "level_zero/sysman/source/sysman_driver_handle_imp.h"
#include "level_zero/core/source/global_teardown.h"
#include "level_zero/tools/source/sysman/os_sysman_driver.h"
#include "level_zero/tools/source/sysman/sysman.h"
@@ -16,14 +15,9 @@ using namespace L0;
BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
if (fdwReason == DLL_PROCESS_DETACH) {
if (GlobalDriver != nullptr) {
delete GlobalDriver;
GlobalDriver = nullptr;
}
if (Sysman::GlobalSysmanDriver != nullptr) {
delete Sysman::GlobalSysmanDriver;
Sysman::GlobalSysmanDriver = nullptr;
}
std::string loaderLibraryName = L0::loaderLibraryFilename + ".dll";
loaderDriverTeardown(loaderLibraryName);
globalDriverTeardown();
if (GlobalOsSysmanDriver != nullptr) {
delete GlobalOsSysmanDriver;
GlobalOsSysmanDriver = nullptr;