drm/i915: Remove pages_mutex and intel_gtt->vma_ops.set/clear_pages members, v3.
Big delta, but boils down to moving set_pages to i915_vma.c, and removing the special handling, all callers use the defaults anyway. We only remap in ggtt, so default case will fall through. Because we still don't require locking in i915_vma_unpin(), handle this by using xchg in get_pages(), as it's locked with obj->mutex, and cmpxchg in unpin, which only fails if we race a against a new pin. Changes since v1: - aliasing gtt sets ZERO_SIZE_PTR, not -ENODEV, remove special case from __i915_vma_get_pages(). (Matt) Changes since v2: - Free correct old pages in __i915_vma_get_pages(). (Matt) Remove race of clearing vma->pages accidentally from put, free it but leave it set, as only get has the lock. Signed-off-by:Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20211216142749.1966107-4-maarten.lankhorst@linux.intel.com Reviewed-by:
Matthew Auld <matthew.auld@intel.com>
Showing
- drivers/gpu/drm/i915/display/intel_dpt.c 0 additions, 2 deletionsdrivers/gpu/drm/i915/display/intel_dpt.c
- drivers/gpu/drm/i915/gt/gen6_ppgtt.c 0 additions, 15 deletionsdrivers/gpu/drm/i915/gt/gen6_ppgtt.c
- drivers/gpu/drm/i915/gt/intel_ggtt.c 0 additions, 348 deletionsdrivers/gpu/drm/i915/gt/intel_ggtt.c
- drivers/gpu/drm/i915/gt/intel_gtt.c 0 additions, 13 deletionsdrivers/gpu/drm/i915/gt/intel_gtt.c
- drivers/gpu/drm/i915/gt/intel_gtt.h 0 additions, 7 deletionsdrivers/gpu/drm/i915/gt/intel_gtt.h
- drivers/gpu/drm/i915/gt/intel_ppgtt.c 0 additions, 12 deletionsdrivers/gpu/drm/i915/gt/intel_ppgtt.c
- drivers/gpu/drm/i915/i915_vma.c 362 additions, 32 deletionsdrivers/gpu/drm/i915/i915_vma.c
- drivers/gpu/drm/i915/i915_vma.h 3 additions, 0 deletionsdrivers/gpu/drm/i915/i915_vma.h
- drivers/gpu/drm/i915/i915_vma_types.h 0 additions, 1 deletiondrivers/gpu/drm/i915/i915_vma_types.h
- drivers/gpu/drm/i915/selftests/i915_gem_gtt.c 9 additions, 5 deletionsdrivers/gpu/drm/i915/selftests/i915_gem_gtt.c
- drivers/gpu/drm/i915/selftests/mock_gtt.c 0 additions, 4 deletionsdrivers/gpu/drm/i915/selftests/mock_gtt.c
Loading