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