From 623f47132156c3344027ba1a51b4d0554112906b Mon Sep 17 00:00:00 2001 From: Mateusz Hoppe Date: Wed, 9 Nov 2022 14:17:43 +0000 Subject: [PATCH] Do not call waitUserFence under lock Related-To: NEO-7454 Signed-off-by: Mateusz Hoppe --- shared/source/os_interface/linux/drm_neo.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/shared/source/os_interface/linux/drm_neo.cpp b/shared/source/os_interface/linux/drm_neo.cpp index e2fe2ff0c2..c07bf6c68f 100644 --- a/shared/source/os_interface/linux/drm_neo.cpp +++ b/shared/source/os_interface/linux/drm_neo.cpp @@ -1283,7 +1283,11 @@ void Drm::waitForBind(uint32_t vmHandleId) { return; } auto lock = this->lockBindFenceMutex(); - waitUserFence(0u, castToUint64(&this->pagingFence[vmHandleId]), this->fenceVal[vmHandleId], ValueWidth::U64, -1, ioctlHelper->getWaitUserFenceSoftFlag()); + auto fenceAddress = castToUint64(&this->pagingFence[vmHandleId]); + auto fenceValue = this->fenceVal[vmHandleId]; + lock.unlock(); + + waitUserFence(0u, fenceAddress, fenceValue, ValueWidth::U64, -1, ioctlHelper->getWaitUserFenceSoftFlag()); } bool Drm::isSetPairAvailable() {