drm/i915: Prevent writing into a read-only object via a GGTT mmap
If the user has created a read-only object, they should not be allowed to circumvent the write protection by using a GGTT mmapping. Deny it. Also most machines do not support read-only GGTT PTEs, so again we have to reject attempted writes. Fortunately, this is known a priori, so we can at least reject in the call to create the mmap (with a sanity check in the fault handler). v2: Check the vma->vm_flags during mmap() to allow readonly access. v3: Remove VM_MAYWRITE to curtail mprotect() Testcase: igt/gem_userptr_blits/readonly_mmap* Signed-off-by:Chris Wilson <chris@chris-wilson.co.uk> Cc: Jon Bloomfield <jon.bloomfield@intel.com> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Matthew Auld <matthew.william.auld@gmail.com> Cc: David Herrmann <dh.herrmann@gmail.com> Reviewed-by: Matthew Auld <matthew.william.auld@gmail.com> #v1 Reviewed-by:
Jon Bloomfield <jon.bloomfield@intel.com> Reviewed-by:
Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180712185315.3288-4-chris@chris-wilson.co.uk
Showing
- drivers/gpu/drm/drm_gem.c 9 additions, 0 deletionsdrivers/gpu/drm/drm_gem.c
- drivers/gpu/drm/i915/i915_gem.c 4 additions, 0 deletionsdrivers/gpu/drm/i915/i915_gem.c
- drivers/gpu/drm/i915/i915_gem_gtt.c 7 additions, 5 deletionsdrivers/gpu/drm/i915/i915_gem_gtt.c
- drivers/gpu/drm/i915/i915_gem_object.h 12 additions, 1 deletiondrivers/gpu/drm/i915/i915_gem_object.h
- drivers/gpu/drm/i915/intel_ringbuffer.c 1 addition, 1 deletiondrivers/gpu/drm/i915/intel_ringbuffer.c
- drivers/gpu/drm/i915/selftests/i915_gem_context.c 3 additions, 2 deletionsdrivers/gpu/drm/i915/selftests/i915_gem_context.c
- include/drm/drm_vma_manager.h 1 addition, 0 deletionsinclude/drm/drm_vma_manager.h
Loading
Please register or sign in to comment