diff --git a/libdrm/Makefile.am b/libdrm/Makefile.am index eb63abe1..71a87186 100644 --- a/libdrm/Makefile.am +++ b/libdrm/Makefile.am @@ -23,6 +23,7 @@ SUBDIRS = . intel libdrm_la_LTLIBRARIES = libdrm.la libdrm_ladir = $(libdir) libdrm_la_LDFLAGS = -version-number 2:4:0 -no-undefined +libdrm_la_LIBADD = -lrt AM_CFLAGS = -I$(top_srcdir)/shared-core libdrm_la_SOURCES = xf86drm.c xf86drmHash.c xf86drmRandom.c xf86drmSL.c \ diff --git a/libdrm/xf86drm.c b/libdrm/xf86drm.c index 55df19ab..3396e283 100644 --- a/libdrm/xf86drm.c +++ b/libdrm/xf86drm.c @@ -1910,16 +1910,13 @@ int drmWaitVBlank(int fd, drmVBlankPtr vbl) do { ret = ioctl(fd, DRM_IOCTL_WAIT_VBLANK, vbl); vbl->request.type &= ~DRM_VBLANK_RELATIVE; - if (ret && errno == EINTR) { - clock_gettime(CLOCK_MONOTONIC, &cur); - /* Timeout after 1s */ - if (cur.tv_sec > timeout.tv_sec + 1 || - (cur.tv_sec == timeout.tv_sec && cur.tv_nsec >= - timeout.tv_nsec)) { - errno = EBUSY; - ret = -1; - break; - } + clock_gettime(CLOCK_MONOTONIC, &cur); + /* Timeout after 1s */ + if (cur.tv_sec > timeout.tv_sec + 1 || + cur.tv_sec == timeout.tv_sec && cur.tv_nsec >= timeout.tv_nsec) { + errno = EBUSY; + ret = -1; + break; } } while (ret && errno == EINTR);