diff options
author | 2019-07-27 04:47:59 +0000 | |
---|---|---|
committer | 2019-07-27 04:47:59 +0000 | |
commit | 43918264d9a1d2fb08ce688812810b16ce19b045 (patch) | |
tree | 04a2f41f3ef3afe6be14d4d54c6cd40030a25dd5 | |
parent | Cleanup, no functional change: (diff) | |
download | wireguard-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.c | 4 |
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); |