Skip to content

Commit da1ecd8

Browse files
authored
Check zesInit pfnInit before attempting call (#301)
Signed-off-by: Neil R. Spruit <neil.r.spruit@intel.com>
1 parent 3c938e2 commit da1ecd8

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

scripts/templates/ldrddi.cpp.mako

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ namespace loader
4848
{
4949
if(drv.initStatus != ZE_RESULT_SUCCESS)
5050
continue;
51+
%if re.match(r"Init", obj['name']) and namespace == "zes":
52+
if (!drv.dditable.${n}.${th.get_table_name(n, tags, obj)}.${th.make_pfn_name(n, tags, obj)}) {
53+
drv.initDriversStatus = ZE_RESULT_ERROR_UNINITIALIZED;
54+
continue;
55+
}
56+
%endif
5157
drv.initStatus = drv.dditable.${n}.${th.get_table_name(n, tags, obj)}.${th.make_pfn_name(n, tags, obj)}( ${", ".join(th.make_param_lines(n, tags, obj, format=["name"]))} );
5258
if(drv.initStatus == ZE_RESULT_SUCCESS)
5359
atLeastOneDriverValid = true;

source/loader/zes_ldrddi.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ namespace loader
2626
{
2727
if(drv.initStatus != ZE_RESULT_SUCCESS)
2828
continue;
29+
if (!drv.dditable.zes.Global.pfnInit) {
30+
drv.initDriversStatus = ZE_RESULT_ERROR_UNINITIALIZED;
31+
continue;
32+
}
2933
drv.initStatus = drv.dditable.zes.Global.pfnInit( flags );
3034
if(drv.initStatus == ZE_RESULT_SUCCESS)
3135
atLeastOneDriverValid = true;

0 commit comments

Comments
 (0)