Quoting Abdiel Janulgue (2019-08-26 13:20:58) > @@ -641,10 +642,18 @@ static void revoke_mmaps(struct intel_gt *gt) > GEM_BUG_ON(vma->fence != >->ggtt->fence_regs[i]); > node = &vma->obj->base.vma_node; > vma_offset = vma->ggtt_view.partial.offset << PAGE_SHIFT; > - unmap_mapping_range(gt->i915->drm.anon_inode->i_mapping, > + > + list_for_each_entry(mmo, &vma->obj->mmap_offsets, offset) { > + node = &mmo->vma_node; > + if (!drm_mm_node_allocated(&node->vm_node) || > + mmo->mmap_type != I915_MMAP_TYPE_GTT) > + continue; That list needs locking as is not protected by the reset srcu (and you are not allowed your own locking in here, unless you have a jolly good reason and can prove it will never block a reset). One thing to observe is is that you only ever need the mmo associated with a fence for revocation upon reset, and you could use a local list for tracking the active mmo. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx