summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjsg <jsg@openbsd.org>2019-07-27 04:47:59 +0000
committerjsg <jsg@openbsd.org>2019-07-27 04:47:59 +0000
commit43918264d9a1d2fb08ce688812810b16ce19b045 (patch)
tree04a2f41f3ef3afe6be14d4d54c6cd40030a25dd5
parentCleanup, no functional change: (diff)
downloadwireguard-openbsd-43918264d9a1d2fb08ce688812810b16ce19b045.tar.xz
wireguard-openbsd-43918264d9a1d2fb08ce688812810b16ce19b045.zip
Match linux path in i915_gem_mmap_ioctl() and change ggtt origin if
I915_MMAP_WC flag is set. ok kettenis@
-rw-r--r--sys/dev/pci/drm/i915/i915_gem.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/pci/drm/i915/i915_gem.c b/sys/dev/pci/drm/i915/i915_gem.c
index 0472d45fdc2..5beff180cf7 100644
--- a/sys/dev/pci/drm/i915/i915_gem.c
+++ b/sys/dev/pci/drm/i915/i915_gem.c
@@ -2016,6 +2016,10 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data,
obj->base.uao, args->offset, 0, UVM_MAPFLAG(PROT_READ | PROT_WRITE,
PROT_READ | PROT_WRITE, MAP_INHERIT_SHARE, MADV_RANDOM,
(args->flags & I915_MMAP_WC) ? UVM_FLAG_WC : 0));
+ if (args->flags & I915_MMAP_WC) {
+ /* This may race, but that's ok, it only gets set */
+ WRITE_ONCE(obj->frontbuffer_ggtt_origin, ORIGIN_CPU);
+ }
if (ret == 0)
uao_reference(obj->base.uao);
i915_gem_object_put(obj);