Skip to content

Commit 2651b05

Browse files
authored
Merge pull request #2396 from kswiecicki/init-results-fix
[L0] Add nullopt check before init results access
2 parents 63a46d7 + c489844 commit 2651b05

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

source/adapters/level_zero/adapter.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,9 @@ Behavior Summary:
256256
*/
257257
ur_adapter_handle_t_::ur_adapter_handle_t_()
258258
: logger(logger::get_logger("level_zero")) {
259+
ZeInitDriversResult = ZE_RESULT_ERROR_UNINITIALIZED;
260+
ZeInitResult = ZE_RESULT_ERROR_UNINITIALIZED;
261+
ZesResult = ZE_RESULT_ERROR_UNINITIALIZED;
259262

260263
if (UrL0Debug & UR_L0_DEBUG_BASIC) {
261264
logger.setLegacySink(std::make_unique<ur_legacy_sink>());
@@ -331,9 +334,8 @@ ur_adapter_handle_t_::ur_adapter_handle_t_()
331334
logger::debug("\nzeInit with flags value of {}\n",
332335
static_cast<int>(L0InitFlags));
333336
GlobalAdapter->ZeInitResult = ZE_CALL_NOCHECK(zeInit, (L0InitFlags));
334-
if (*GlobalAdapter->ZeInitResult != ZE_RESULT_SUCCESS) {
335-
logger::debug("\nzeInit failed with {}\n",
336-
*GlobalAdapter->ZeInitResult);
337+
if (GlobalAdapter->ZeInitResult != ZE_RESULT_SUCCESS) {
338+
logger::debug("\nzeInit failed with {}\n", GlobalAdapter->ZeInitResult);
337339
}
338340

339341
bool useInitDrivers = false;
@@ -376,17 +378,17 @@ ur_adapter_handle_t_::ur_adapter_handle_t_()
376378
ZE_CALL_NOCHECK(GlobalAdapter->initDriversFunctionPtr,
377379
(&GlobalAdapter->ZeInitDriversCount, nullptr,
378380
&GlobalAdapter->InitDriversDesc));
379-
if (*GlobalAdapter->ZeInitDriversResult == ZE_RESULT_SUCCESS) {
381+
if (GlobalAdapter->ZeInitDriversResult == ZE_RESULT_SUCCESS) {
380382
GlobalAdapter->InitDriversSupported = true;
381383
} else {
382384
logger::debug("\nzeInitDrivers failed with {}\n",
383-
*GlobalAdapter->ZeInitDriversResult);
385+
GlobalAdapter->ZeInitDriversResult);
384386
}
385387
}
386388
}
387389

388-
if (*GlobalAdapter->ZeInitResult == ZE_RESULT_SUCCESS ||
389-
*GlobalAdapter->ZeInitDriversResult == ZE_RESULT_SUCCESS) {
390+
if (GlobalAdapter->ZeInitResult == ZE_RESULT_SUCCESS ||
391+
GlobalAdapter->ZeInitDriversResult == ZE_RESULT_SUCCESS) {
390392
GlobalAdapter->ZeResult = ZE_RESULT_SUCCESS;
391393
} else {
392394
GlobalAdapter->ZeResult = ZE_RESULT_ERROR_UNINITIALIZED;
@@ -450,7 +452,7 @@ ur_adapter_handle_t_::ur_adapter_handle_t_()
450452
GlobalAdapter->ZesResult = ZE_RESULT_ERROR_UNINITIALIZED;
451453
}
452454

453-
ur_result_t err = initPlatforms(platforms, *GlobalAdapter->ZesResult);
455+
ur_result_t err = initPlatforms(platforms, GlobalAdapter->ZesResult);
454456
if (err == UR_RESULT_SUCCESS) {
455457
result = std::move(platforms);
456458
} else {

source/adapters/level_zero/adapter.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ struct ur_adapter_handle_t_ {
3939
uint32_t ZeInitDriversCount = 0;
4040
bool InitDriversSupported = false;
4141

42-
std::optional<ze_result_t> ZeInitDriversResult;
43-
std::optional<ze_result_t> ZeInitResult;
42+
ze_result_t ZeInitDriversResult;
43+
ze_result_t ZeInitResult;
44+
ze_result_t ZesResult;
4445
std::optional<ze_result_t> ZeResult;
45-
std::optional<ze_result_t> ZesResult;
4646
ZeCache<Result<PlatformVec>> PlatformCache;
4747
logger::Logger &logger;
4848
HMODULE processHandle = nullptr;

0 commit comments

Comments
 (0)