Skip to content

Commit 2df32f9

Browse files
committed
Fix ddi table init checks
Signed-off-by: Neil R. Spruit <neil.r.spruit@intel.com>
1 parent 3269b1f commit 2df32f9

3 files changed

Lines changed: 8 additions & 6 deletions

File tree

scripts/templates/ldrddi.cpp.mako

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ namespace loader
114114
uint32_t total_driver_handle_count = 0;
115115
%if re.match(r"\w+InitDrivers$", th.make_func_name(n, tags, obj)):
116116
for( auto& drv : loader::context->zeDrivers ) {
117-
if (!drv.handle) {
117+
if (!drv.handle || !drv.ddiInitialized) {
118118
loader::context->init_driver( drv, 0, desc, nullptr, nullptr, false );
119119
}
120120
}
@@ -153,15 +153,16 @@ namespace loader
153153
%endif
154154
{
155155
%if not (re.match(r"\w+InitDrivers$", th.make_func_name(n, tags, obj))) and namespace != "zes":
156-
if(drv.initStatus != ZE_RESULT_SUCCESS)
156+
if(drv.initStatus != ZE_RESULT_SUCCESS || !drv.ddiInitialized)
157157
continue;
158158
%elif namespace == "zes":
159-
if(drv.initStatus != ZE_RESULT_SUCCESS || drv.initSysManStatus != ZE_RESULT_SUCCESS)
159+
if(drv.initStatus != ZE_RESULT_SUCCESS || drv.initSysManStatus != ZE_RESULT_SUCCESS || !drv.ddiInitialized)
160160
continue;
161161
%else:
162162
if (!drv.dditable.${n}.${th.get_table_name(n, tags, obj)}.${th.make_pfn_name(n, tags, obj)}) {
163163
%if re.match(r"\w+InitDrivers$", th.make_func_name(n, tags, obj)):
164164
drv.initDriversStatus = ${X}_RESULT_ERROR_UNINITIALIZED;
165+
result = ${X}_RESULT_ERROR_UNINITIALIZED;
165166
%else:
166167
drv.initStatus = ${X}_RESULT_ERROR_UNINITIALIZED;
167168
%endif

source/loader/ze_ldrddi.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ namespace loader
204204

205205
for( auto& drv : loader::context->zeDrivers )
206206
{
207-
if(drv.initStatus != ZE_RESULT_SUCCESS)
207+
if(drv.initStatus != ZE_RESULT_SUCCESS || !drv.ddiInitialized)
208208
continue;
209209

210210
if( ( 0 < *pCount ) && ( *pCount == total_driver_handle_count))
@@ -339,7 +339,7 @@ namespace loader
339339

340340
uint32_t total_driver_handle_count = 0;
341341
for( auto& drv : loader::context->zeDrivers ) {
342-
if (!drv.handle) {
342+
if (!drv.handle || !drv.ddiInitialized) {
343343
loader::context->init_driver( drv, 0, desc, nullptr, nullptr, false );
344344
}
345345
}
@@ -360,6 +360,7 @@ namespace loader
360360
{
361361
if (!drv.dditable.ze.Global.pfnInitDrivers) {
362362
drv.initDriversStatus = ZE_RESULT_ERROR_UNINITIALIZED;
363+
result = ZE_RESULT_ERROR_UNINITIALIZED;
363364
continue;
364365
}
365366

source/loader/zes_ldrddi.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ namespace loader
182182

183183
for( auto& drv : *loader::context->sysmanInstanceDrivers )
184184
{
185-
if(drv.initStatus != ZE_RESULT_SUCCESS || drv.initSysManStatus != ZE_RESULT_SUCCESS)
185+
if(drv.initStatus != ZE_RESULT_SUCCESS || drv.initSysManStatus != ZE_RESULT_SUCCESS || !drv.ddiInitialized)
186186
continue;
187187

188188
if( ( 0 < *pCount ) && ( *pCount == total_driver_handle_count))

0 commit comments

Comments
 (0)