OpenCloudOS-Kernel/drivers/gpu/drm/i915
Chris Wilson cb6d7c7dc7 drm/i915/userptr: Acquire the page lock around set_page_dirty()
set_page_dirty says:

	For pages with a mapping this should be done under the page lock
	for the benefit of asynchronous memory errors who prefer a
	consistent dirty state. This rule can be broken in some special
	cases, but should be better not to.

Under those rules, it is only safe for us to use the plain set_page_dirty
calls for shmemfs/anonymous memory. Userptr may be used with real
mappings and so needs to use the locked version (set_page_dirty_lock).

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203317
Fixes: 5cc9ed4b9a ("drm/i915: Introduce mapping of user pages into video memory (userptr) ioctl")
References: 6dcc693bc5 ("ext4: warn when page is dirtied without buffers")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: stable@vger.kernel.org
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190708140327.26825-1-chris@chris-wilson.co.uk
2019-07-09 08:16:25 +01:00
..
display drm/i915: Remove set but not used variable 'intel_dig_port' 2019-07-05 15:38:06 +03:00
gem drm/i915/userptr: Acquire the page lock around set_page_dirty() 2019-07-09 08:16:25 +01:00
gt drm/i915/selftests: Reorder error cleanup for whitelist checking 2019-07-08 17:33:28 +01:00
gvt drm/i915/gtt: Use a common type for page directories 2019-06-17 16:30:54 +03:00
oa drm/i915: Move OA files to separate folder 2019-06-26 23:23:59 +01:00
selftests drm/i915/selftests: Set igt_spinner.gt for early exit 2019-07-09 08:07:09 +01:00
.gitignore drm/i915: add Makefile magic for testing headers are self-contained 2019-04-04 19:49:42 +03:00
Kconfig drm/i915: add force_probe module parameter to replace alpha_support 2019-05-31 16:20:30 +03:00
Kconfig.debug drm/i915: Enable refcount debugging for default debug levels 2019-06-14 12:16:08 +01:00
Kconfig.profile drm/i915: Add a label for config DRM_I915_SPIN_REQUEST 2019-06-12 11:18:55 +01:00
Makefile drm/i915: Move the renderstate setup under gt/ 2019-07-04 11:48:22 +01:00
Makefile.header-test drm/i915: make intel_uc_fw.h self-contained 2019-06-27 10:50:54 +03:00
i915_active.c drm/i915: Markup potential lock for i915_active 2019-07-03 12:23:56 +01:00
i915_active.h drm/i915: Provide an i915_active.acquire callback 2019-06-21 19:47:55 +01:00
i915_active_types.h drm/i915: Provide an i915_active.acquire callback 2019-06-21 19:47:55 +01:00
i915_cmd_parser.c drm/i915: Move GEM object domain management from struct_mutex to local 2019-05-28 12:45:29 +01:00
i915_debugfs.c drm/i915: Show instdone for each engine in debugfs 2019-07-04 22:55:03 +01:00
i915_debugfs.h drm/i915: extract i915_debugfs.h from i915_drv.h 2019-05-03 10:06:40 +03:00
i915_drv.c drm/i915: Initialize drm_driver vblank funcs at compile time 2019-06-26 19:23:28 +03:00
i915_drv.h drm/i915: Update DRIVER_DATE to 20190708 2019-07-08 13:09:06 -07:00
i915_fixed.h drm/i915: make i915_fixed.h self-contained 2019-06-27 10:50:24 +03:00
i915_gem.c drm/i915/gem: Free pages before rcu-freeing the object 2019-07-03 11:46:47 +01:00
i915_gem.h drm/i915: Load balancing across a virtual engine 2019-05-22 08:40:38 +01:00
i915_gem_batch_pool.c drm/i915: Throw away the active object retirement complexity 2019-06-21 19:47:51 +01:00
i915_gem_batch_pool.h drm/i915: Split GEM object type definition to its own header 2019-05-28 12:45:29 +01:00
i915_gem_evict.c drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_gem_fence_reg.c drm/i915: Use intel_uncore_rmw in intel_gt_init_swizzling 2019-06-21 13:48:24 +01:00
i915_gem_fence_reg.h drm/i915: Convert i915_gem_init_swizzling to intel_gt 2019-06-21 13:48:22 +01:00
i915_gem_gtt.c drm/i915/gtt: Introduce release_pd_entry 2019-07-06 10:21:31 +01:00
i915_gem_gtt.h drm/i915/gtt: pde entry encoding is identical 2019-07-06 10:19:58 +01:00
i915_globals.c drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_globals.h drm/i915: make i915_globals.h self-contained 2019-06-27 10:50:32 +03:00
i915_gpu_error.c drm/i915: Prevent dereference of engine before NULL check in error capture 2019-06-21 15:38:54 +01:00
i915_gpu_error.h drm/i915: Invert the GEM wakeref hierarchy 2019-04-24 22:26:49 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Move dev_priv->pm_i{m, e}r into intel_gt 2019-07-05 10:10:18 +01:00
i915_irq.h drm/i915: Move dev_priv->pm_i{m, e}r into intel_gt 2019-07-05 10:10:18 +01:00
i915_memcpy.c
i915_mm.c
i915_params.c drm/i915: Check backlight type while doing eDP backlight initializaiton 2019-06-26 17:48:12 +03:00
i915_params.h drm/i915: Check backlight type while doing eDP backlight initializaiton 2019-06-26 17:48:12 +03:00
i915_pci.c drm/i915/ehl: Add missing VECS engine 2019-06-25 11:50:20 -07:00
i915_perf.c drm/i915: Move OA files to separate folder 2019-06-26 23:23:59 +01:00
i915_pmu.c drm/i915: Show support for accurate sw PMU busyness tracking 2019-07-04 15:42:24 +01:00
i915_pmu.h
i915_priolist_types.h drm/i915: Downgrade NEWCLIENT to non-preemptive 2019-05-20 18:28:22 +03:00
i915_pvinfo.h drm/i915: make i915_pvinfo.h self-contained 2019-06-27 10:50:35 +03:00
i915_query.c Revert "drm/i915: Expand subslice mask" 2019-05-29 17:18:18 +03:00
i915_query.h
i915_reg.h drm/i915: Program plane gamma ramps 2019-07-05 13:11:04 +03:00
i915_request.c drm/i915: Rename i915_timeline to intel_timeline and move under gt 2019-06-21 13:48:53 +01:00
i915_request.h drm/i915: Rename i915_timeline to intel_timeline and move under gt 2019-06-21 13:48:53 +01:00
i915_scatterlist.c drm/i915: Pull scatterlist utils out of i915_gem.h 2019-05-28 12:45:29 +01:00
i915_scatterlist.h drm/i915: Pull scatterlist utils out of i915_gem.h 2019-05-28 12:45:29 +01:00
i915_scheduler.c drm/i915/execlists: Minimalistic timeslicing 2019-06-20 16:52:36 +01:00
i915_scheduler.h drm/i915: Only reschedule the submission tasklet if preemption is possible 2019-05-07 17:40:20 +01:00
i915_scheduler_types.h drm/i915/execlists: Minimalistic timeslicing 2019-06-20 16:52:36 +01:00
i915_selftest.h drm/i915/selftests: Common live setup/teardown 2019-07-03 11:07:57 +01:00
i915_suspend.c drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
i915_sw_fence.c drm/i915: Allow contexts to share a single timeline across all engines 2019-03-22 13:12:38 +00:00
i915_sw_fence.h drm/i915: Allow contexts to share a single timeline across all engines 2019-03-22 13:12:38 +00:00
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c drm/i915: update with_intel_runtime_pm to use the rpm structure 2019-06-14 15:58:33 +01:00
i915_trace.h drm/i915: Fix various tracepoints for gen2 2019-06-26 19:23:28 +03:00
i915_trace_points.c
i915_user_extensions.c drm/i915: Introduce the i915_user_extension_method 2019-03-22 13:12:30 +00:00
i915_user_extensions.h drm/i915: Introduce the i915_user_extension_method 2019-03-22 13:12:30 +00:00
i915_utils.h drm/i915/execlists: Preempt-to-busy 2019-06-20 16:52:36 +01:00
i915_vgpu.c drm/i915/gt: Fixup kerneldoc parameters 2019-06-21 16:04:09 +01:00
i915_vgpu.h drm/i915: make i915_vgpu.h self-contained 2019-06-27 10:50:38 +03:00
i915_vma.c drm/i915: Mark up vma->active as safe for use inside shrinkers 2019-07-03 12:24:08 +01:00
i915_vma.h drm/i915: Move fence register tracking from i915->mm to ggtt 2019-06-13 09:37:39 +01:00
intel_csr.c drm/i915/dmc: protect against loading wrong firmware 2019-06-17 12:32:34 -07:00
intel_csr.h drm/i915/csr: move CSR version macros to intel_csr.h 2019-05-03 10:06:25 +03:00
intel_device_info.c drm/i915: rework reading pipe disable fuses 2019-06-28 10:07:26 -07:00
intel_device_info.h drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
intel_drv.h drm/i915: Keep the TypeC port mode fixed when the port is active 2019-07-01 15:02:34 +03:00
intel_guc.c drm/i915: Make GuC GGTT reservation work on ggtt 2019-06-11 14:40:15 +01:00
intel_guc.h drm/i915/guc: Avoid reclaim locks during reset 2019-07-01 16:21:43 +01:00
intel_guc_ads.c drm/i915/guc: Avoid reclaim locks during reset 2019-07-01 16:21:43 +01:00
intel_guc_ads.h drm/i915/guc: Reset GuC ADS during sanitize 2019-05-28 10:07:05 +01:00
intel_guc_ct.c drm/i915/guc: reorder enable/disable communication steps 2019-06-21 19:47:33 +01:00
intel_guc_ct.h drm/i915: make intel_guc_ct.h self-contained 2019-06-27 10:50:40 +03:00
intel_guc_fw.c drm/i915/guc: Upgrade to GuC 33.0.0 2019-07-04 16:56:55 +01:00
intel_guc_fw.h
intel_guc_fwif.h drm/i915/guc: Upgrade to GuC 33.0.0 2019-07-04 16:56:55 +01:00
intel_guc_log.c drm/i915: synchronize_irq() against the actual irq 2019-07-03 10:07:13 +01:00
intel_guc_log.h
intel_guc_reg.h drm/i915: make intel_guc_reg.h self-contained 2019-06-27 10:50:45 +03:00
intel_guc_submission.c drm/i915/execlists: Preempt-to-busy 2019-06-20 16:52:36 +01:00
intel_guc_submission.h drm/i915: Move GraphicsTechnology files under gt/ 2019-04-24 21:01:46 +01:00
intel_gvt.c
intel_gvt.h drm/i915: make intel_gvt.h self-contained 2019-06-27 10:50:48 +03:00
intel_huc.c drm/i915: update with_intel_runtime_pm to use the rpm structure 2019-06-14 15:58:33 +01:00
intel_huc.h drm/i915/huc: New HuC status register for Gen11 2019-05-28 10:07:13 +01:00
intel_huc_fw.c drm/i915/huc: Define HuC firmware version for Icelake 2019-05-28 10:07:23 +01:00
intel_huc_fw.h
intel_pm.c drm/i915: Deal with cpp==8 for g4x watermarks 2019-07-05 13:14:05 +03:00
intel_pm.h drm/i915: Convert most of atomic commit to take more intel state 2019-07-01 10:32:14 +02:00
intel_runtime_pm.c drm/i915: Fix memleak in runtime wakeref tracking 2019-07-02 16:00:20 +01:00
intel_runtime_pm.h drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
intel_sideband.c drm/i915: Make sandybridge_pcode_read() deal with the second data register 2019-05-27 20:51:48 +03:00
intel_sideband.h drm/i915: Make sandybridge_pcode_read() deal with the second data register 2019-05-27 20:51:48 +03:00
intel_uc.c drm/i915/guc: handle GuC messages received with CTB disabled 2019-06-21 19:47:34 +01:00
intel_uc.h drm/i915/guc: Fix runtime suspend 2019-05-03 08:38:37 +01:00
intel_uc_fw.c drm/i915: Move GEM object domain management from struct_mutex to local 2019-05-28 12:45:29 +01:00
intel_uc_fw.h drm/i915: make intel_uc_fw.h self-contained 2019-06-27 10:50:54 +03:00
intel_uncore.c drm/i915: Explicitly track active fw_domain timers 2019-07-08 17:33:10 +01:00
intel_uncore.h drm/i915: Explicitly track active fw_domain timers 2019-07-08 17:33:10 +01:00
intel_wakeref.c drm/i915: Local debug BUG_ON for intel_wakeref 2019-06-21 19:48:00 +01:00
intel_wakeref.h drm/i915: Add a wakeref getter for iff the wakeref is already active 2019-06-26 18:01:01 +01:00
intel_wopcm.c drm/i915/gt: Fixup kerneldoc parameters 2019-06-21 16:04:09 +01:00
intel_wopcm.h drm/i915: Stop using I915_READ/WRITE in intel_wopcm_init_hw 2019-06-21 13:48:32 +01:00