Remove bogus code that tries to unmap GTT pages in a codepath that clearly
authorkettenis <kettenis@openbsd.org>
Sat, 28 Aug 2021 06:03:25 +0000 (06:03 +0000)
committerkettenis <kettenis@openbsd.org>
Sat, 28 Aug 2021 06:03:25 +0000 (06:03 +0000)
doesn't deal with non-GTT mappings.  What the Linux code does here isn't
possible on OpenBSD and probably unecessary.

Seems to fix a crash reported by sthen@
ok jsg@

sys/dev/pci/drm/i915/gem/i915_gem_mman.c

index 8b5bb94..c326e2f 100644 (file)
@@ -841,19 +841,6 @@ void i915_gem_object_release_mmap_offset(struct drm_i915_gem_object *obj)
 #ifdef __linux__
                drm_vma_node_unmap(&mmo->vma_node,
                                   obj->base.dev->anon_inode->i_mapping);
-#else
-               if (drm_mm_node_allocated(&mmo->vma_node.vm_node)) {
-                       struct drm_i915_private *dev_priv = obj->base.dev->dev_private;
-                       struct i915_vma *vma;
-                       struct vm_page *pg;
-
-                       for_each_ggtt_vma(vma, obj) {
-                               for (pg = &dev_priv->pgs[atop(vma->node.start)];
-                                    pg != &dev_priv->pgs[atop(vma->node.start + vma->size)];
-                                    pg++)
-                                       pmap_page_protect(pg, PROT_NONE);
-                       }
-               }
 #endif
                spin_lock(&obj->mmo.lock);
        }