summaryrefslogtreecommitdiff
path: root/x11-drivers/xf86-video-intel/files/patch-src_sna_kgem.c
diff options
context:
space:
mode:
Diffstat (limited to 'x11-drivers/xf86-video-intel/files/patch-src_sna_kgem.c')
-rw-r--r--x11-drivers/xf86-video-intel/files/patch-src_sna_kgem.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/x11-drivers/xf86-video-intel/files/patch-src_sna_kgem.c b/x11-drivers/xf86-video-intel/files/patch-src_sna_kgem.c
new file mode 100644
index 000000000000..f71962e56a63
--- /dev/null
+++ b/x11-drivers/xf86-video-intel/files/patch-src_sna_kgem.c
@@ -0,0 +1,24 @@
+--- src/sna/kgem.c.orig 2021-01-15 20:59:05 UTC
++++ src/sna/kgem.c
+@@ -1189,13 +1189,18 @@ static int gem_param(struct kgem *kgem, int name)
+ static bool test_has_execbuffer2(struct kgem *kgem)
+ {
+ struct drm_i915_gem_execbuffer2 execbuf;
++ int ret;
+
+ memset(&execbuf, 0, sizeof(execbuf));
+ execbuf.buffer_count = 1;
+
+- return do_ioctl(kgem->fd,
+- DRM_IOCTL_I915_GEM_EXECBUFFER2,
+- &execbuf) == -EFAULT;
++ ret = do_ioctl(kgem->fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &execbuf);
++#ifdef __FreeBSD__
++ /* XXX FreeBSD returns ENOENT instead of EFAULT. */
++ if (ret == -ENOENT)
++ return true;
++#endif
++ return ret == -EFAULT;
+ }
+
+ static bool test_has_no_reloc(struct kgem *kgem)