linux_dsm_epyc7002/drivers/gpu/drm/i915/selftests
Chris Wilson 3e977ac617 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
2018-07-13 16:14:04 +01:00
..
huge_gem_object.c drm: move read_domains and write_domain into i915 2018-02-16 14:12:48 +00:00
huge_gem_object.h
huge_pages.c drm/i915: Start returning an error from i915_vma_move_to_active() 2018-07-06 18:22:37 +01:00
i915_gem_coherency.c drm/i915/selftests: Provide full mb() around clflush 2018-07-06 21:28:11 +01:00
i915_gem_context.c drm/i915: Prevent writing into a read-only object via a GGTT mmap 2018-07-13 16:14:04 +01:00
i915_gem_dmabuf.c drm/i915: Replace drm_dev_unref with drm_dev_put 2018-06-28 19:09:46 +02:00
i915_gem_evict.c drm/i915/selftests: Skip live eviction tests when wedged 2018-07-06 11:25:06 +01:00
i915_gem_gtt.c drm/i915/selftests: Constrain mock_gtt tests to fit within RAM 2018-07-10 09:53:41 +01:00
i915_gem_object.c drm/i915/selftests: Filter out both physical address swizzles 2018-07-10 09:53:41 +01:00
i915_live_selftests.h drm/i915: Check whitelist registers across resets 2018-04-14 18:36:45 +01:00
i915_mock_selftests.h drm/i915: Look for an active kernel context before switching 2018-05-24 15:51:45 +01:00
i915_random.c drm/i915/selftests: Allow random array allocation to fail 2018-01-02 15:30:40 +00:00
i915_random.h
i915_request.c drm/i915: Provide a timeout to i915_gem_wait_for_idle() 2018-07-09 13:55:41 +01:00
i915_selftest.c
i915_sw_fence.c drm/i915/selftests: Wait for the dma-fence timeout 2018-01-17 17:09:59 +00:00
i915_syncmap.c drm/i915/selftests: Always initialise err 2017-11-14 23:50:49 +00:00
i915_timeline.c drm/i915: Split i915_gem_timeline into individual timelines 2018-05-02 23:57:18 +01:00
i915_vma.c drm/i915: Replace drm_dev_unref with drm_dev_put 2018-06-28 19:09:46 +02:00
igt_flush_test.c drm/i915/selftests: Replace wait-on-timeout with explicit timeout 2018-07-09 13:56:42 +01:00
igt_flush_test.h drm/i915/selftests: Refactor common flush_test() 2018-05-08 12:44:31 +01:00
igt_wedge_me.h drm/i915/selftests: Add a safety net to live_workarounds 2018-07-11 14:13:56 +01:00
intel_breadcrumbs.c drm/i915: Replace drm_dev_unref with drm_dev_put 2018-06-28 19:09:46 +02:00
intel_engine_cs.c drm/i915: add a selftest for the mmio_bases table 2018-03-15 08:46:06 +00:00
intel_guc.c drm/i915/selftests: Fixup GuC FW negative test 2018-07-12 15:22:58 +01:00
intel_hangcheck.c drm/i915: Start returning an error from i915_vma_move_to_active() 2018-07-06 18:22:37 +01:00
intel_lrc.c drm/i915: Start returning an error from i915_vma_move_to_active() 2018-07-06 18:22:37 +01:00
intel_uncore.c drm/i915/icl: Gen11 forcewake support 2018-03-07 15:07:45 +02:00
intel_workarounds.c drm/i915/selftests: Add a safety net to live_workarounds 2018-07-11 14:13:56 +01:00
lib_sw_fence.c drm/i915/selftests: Convert timers to use timer_setup() 2017-11-21 15:46:44 -08:00
lib_sw_fence.h
mock_context.c drm/i915: Store a pointer to intel_context in i915_request 2018-05-18 09:35:22 +01:00
mock_context.h drm/i915/selftests: Use a sacrificial context for hang testing 2018-02-05 15:27:24 +00:00
mock_dmabuf.c
mock_dmabuf.h
mock_drm.c
mock_drm.h
mock_engine.c drm/i915: Replace nested subclassing with explicit subclasses 2018-07-07 08:09:43 +01:00
mock_engine.h
mock_gem_device.c drm/i915/selftests: Avoid warning if runtime pm is disabled 2018-07-06 23:33:34 +01:00
mock_gem_device.h
mock_gem_object.h
mock_gtt.c drm/i915/selftests: Replace open-coded i915_address_space_init() 2018-07-05 11:19:24 +01:00
mock_gtt.h
mock_request.c drm/i915: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
mock_request.h drm/i915: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
mock_timeline.c drm/i915: Split i915_gem_timeline into individual timelines 2018-05-02 23:57:18 +01:00
mock_timeline.h drm/i915: Split i915_gem_timeline into individual timelines 2018-05-02 23:57:18 +01:00
mock_uncore.c
mock_uncore.h
scatterlist.c