mirror of
https://git.freebsd.org/ports.git
synced 2025-07-09 05:19:16 -04:00
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
19 lines
728 B
C
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;
|
|
}
|
|
|