From 00db4dd3f0f348ac39726f14763eff04ce43589c Mon Sep 17 00:00:00 2001 From: Michal Mrozek Date: Wed, 12 May 2021 15:09:01 +0000 Subject: [PATCH] optimize errno calls. Signed-off-by: Michal Mrozek --- shared/source/os_interface/linux/drm_neo.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/shared/source/os_interface/linux/drm_neo.cpp b/shared/source/os_interface/linux/drm_neo.cpp index 3815c2e82f..7c7c9704b3 100644 --- a/shared/source/os_interface/linux/drm_neo.cpp +++ b/shared/source/os_interface/linux/drm_neo.cpp @@ -67,6 +67,7 @@ Drm::Drm(std::unique_ptr hwDeviceIdIn, RootDeviceEnvironment &rootDe int Drm::ioctl(unsigned long request, void *arg) { int ret; + int returnedErrno; SYSTEM_ENTER(); do { auto measureTime = DebugManager.flags.PrintIoctlTimes.get(); @@ -85,8 +86,10 @@ int Drm::ioctl(unsigned long request, void *arg) { ret = SysCalls::ioctl(getFileDescriptor(), request, arg); + returnedErrno = errno; + if (printIoctl) { - printf("IOCTL %s returns %d, errno %d\n", this->ioctlToString(request).c_str(), ret, errno); + printf("IOCTL %s returns %d, errno %d\n", this->ioctlToString(request).c_str(), ret, returnedErrno); } if (measureTime) { @@ -104,7 +107,7 @@ int Drm::ioctl(unsigned long request, void *arg) { this->ioctlStatistics[request] = ioctlData; } - } while (ret == -1 && (errno == EINTR || errno == EAGAIN || errno == EBUSY)); + } while (ret == -1 && (returnedErrno == EINTR || returnedErrno == EAGAIN || returnedErrno == EBUSY)); SYSTEM_LEAVE(request); return ret; }