ports/graphics/libdrm/files/extra-xf86drm.c
Matthew Rezny b29ddf3ae3 Update to 2.4.78 and remove the dependency on libdevq
The functionality previously provided by libdevq is now implemented directly
in libdrm. This direct implementation should be more robust than the prior
integration. Initial testing has shown improvements in some scenarios while
remaining on-par elsewhere. The ultimate goal of this effort is to have our
platform support integrated upstream, which will be easier without the extra
dependency. With that in mind, please quickly report any regressions found.

Reviewed by:	dumbbell (x11), bapt (x11)
Approved by:	swills (mentor), dumbbell (x11)
Differential Revision:	https://reviews.freebsd.org/D10184
2017-04-08 15:49:25 +00:00

19 lines
728 B
C

Error code 512 is being leaked from kernel space. While it should be
converted to either EINTR or EAGAIN in the kernel. Teach libdrm to do this
for now. Newer kernel modules will have this fixed included.
dragonfly fixed this issue in,
http://gitweb.dragonflybsd.org/dragonfly.git/commit/b922632f623ee2cc2c1346bb3a6894a7756676aa
which has been included since the 4.4 release.
--- xf86drm.c.orig 2017-01-30 13:59:15.919081000 +0100
+++ xf86drm.c
@@ -197,7 +197,7 @@ drmIoctl(int fd, unsigned long request,
do {
ret = ioctl(fd, request, arg);
- } while (ret == -1 && (errno == EINTR || errno == EAGAIN));
+ } while (ret == -1 && (errno == EINTR || errno == EAGAIN || errno == 512));
return ret;
}