diff --git a/shared/source/os_interface/linux/drm_neo.cpp b/shared/source/os_interface/linux/drm_neo.cpp index f1c6692f02..6a8c8b3062 100644 --- a/shared/source/os_interface/linux/drm_neo.cpp +++ b/shared/source/os_interface/linux/drm_neo.cpp @@ -243,19 +243,16 @@ void Drm::destroyDrmVirtualMemory(uint32_t drmVmId) { UNRECOVERABLE_IF(ret != 0); } -uint32_t Drm::queryVmId(uint32_t drmContextId) { +int Drm::queryVmId(uint32_t drmContextId, uint32_t &vmId) { drm_i915_gem_context_param param{}; param.ctx_id = drmContextId; param.value = 0; param.param = I915_CONTEXT_PARAM_VM; auto retVal = this->ioctl(DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM, ¶m); - DEBUG_BREAK_IF(retVal != 0); - (void)retVal; - auto vmId = static_cast(param.value); - DEBUG_BREAK_IF(vmId == 0); + vmId = static_cast(param.value); - return vmId; + return retVal; } int Drm::getEuTotal(int &euTotal) { diff --git a/shared/source/os_interface/linux/drm_neo.h b/shared/source/os_interface/linux/drm_neo.h index 39efc00ea2..31021cce31 100644 --- a/shared/source/os_interface/linux/drm_neo.h +++ b/shared/source/os_interface/linux/drm_neo.h @@ -72,7 +72,7 @@ class Drm { void destroyDrmVirtualMemory(uint32_t drmVmId); uint32_t createDrmContext(uint32_t drmVmId); void destroyDrmContext(uint32_t drmContextId); - uint32_t queryVmId(uint32_t drmContextId); + int queryVmId(uint32_t drmContextId, uint32_t &vmId); void setLowPriorityContextParam(uint32_t drmContextId); unsigned int bindDrmContext(uint32_t drmContextId, uint32_t deviceIndex, aub_stream::EngineType engineType); diff --git a/shared/source/os_interface/linux/os_context_linux.cpp b/shared/source/os_interface/linux/os_context_linux.cpp index 28392948aa..1da3ff3f30 100644 --- a/shared/source/os_interface/linux/os_context_linux.cpp +++ b/shared/source/os_interface/linux/os_context_linux.cpp @@ -43,7 +43,10 @@ OsContextLinux::OsContextLinux(Drm &drm, uint32_t contextId, DeviceBitfield devi this->drmContextIds.push_back(drmContextId); if (drm.isPerContextVMRequired()) { - drmVmId = drm.queryVmId(drmContextId); + auto ret = drm.queryVmId(drmContextId, drmVmId); + DEBUG_BREAK_IF(drmVmId == 0); + DEBUG_BREAK_IF(ret != 0); + UNUSED_VARIABLE(ret); this->drmVmIds.push_back(drmVmId); } }