linux/drivers/gpu/drm/i915
Chris Wilson 010e3e68cd drm/i915: Remove vma from object on destroy, not close
Originally we translated from the object to the vma by walking
obj->vma_list to find the matching vm (for user lookups). Now we process
user lookups using the rbtree, and we only use obj->vma_list itself for
maintaining state (e.g. ensuring that all vma are flushed or rebound).
As such maintenance needs to go on beyond the user's awareness of the
vma, defer removal of the vma from the obj->vma_list from i915_vma_close()
to i915_vma_destroy()

Fixes: 5888fc9eac ("drm/i915: Flush pending GTT writes before unbinding")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104155
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171206124914.19960-1-chris@chris-wilson.co.uk
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
2017-12-07 14:00:20 +00:00
..
gvt Merge tag 'gvt-next-2017-12-05' of https://github.com/intel/gvt-linux into drm-intel-next-queued 2017-12-05 16:46:14 -08:00
selftests drm/i915/guc: Introduce USES_GUC_xxx helper macros 2017-12-06 14:41:49 +00:00
Kconfig drm/i915/fence: Avoid del_timer_sync() from inside a timer 2017-09-19 13:06:21 +01:00
Kconfig.debug drm/i915: Select DEBUG_FS for our test suite 2017-11-24 12:18:55 +00:00
Makefile drm/i915/pmu: Expose a PMU interface for perf queries 2017-11-22 11:24:57 +00:00
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
i915_cmd_parser.c drm/i915: Move engine->needs_cmd_parser to engine->flags 2017-11-29 12:29:39 +00:00
i915_debugfs.c drm/i915: Extract intel_get_cagf 2017-11-22 11:24:56 +00:00
i915_drv.c drm/i915: Taint (TAINT_WARN) the kernel if the GPU reset fails 2017-12-05 21:51:00 +00:00
i915_drv.h drm/i915/guc: Combine enable_guc_loading|submission modparams 2017-12-06 14:41:52 +00:00
i915_gem.c drm/i915: Remove vma from object on destroy, not close 2017-12-07 14:00:20 +00:00
i915_gem.h drm/i915: Print the condition causing GEM_BUG_ON 2017-11-16 15:35:47 +02:00
i915_gem_batch_pool.c
i915_gem_batch_pool.h
i915_gem_clflush.c drm/i915: Refactor testing obj->mm.pages 2017-10-16 20:44:19 +01:00
i915_gem_clflush.h drm/i915: Force CPU synchronisation even if userspace requests ASYNC 2017-07-27 22:07:24 +02:00
i915_gem_context.c drm/i915/guc: Introduce USES_GUC_xxx helper macros 2017-12-06 14:41:49 +00:00
i915_gem_context.h drm/i915: Record the default hw state after reset upon load 2017-11-10 17:23:10 +00:00
i915_gem_dmabuf.c drm/i915: s/sg_mask/sg_page_sizes/ 2017-10-09 17:07:29 +01:00
i915_gem_evict.c Linux 4.14-rc7 2017-11-02 12:40:41 +10:00
i915_gem_execbuffer.c drm/i915: Move engine->needs_cmd_parser to engine->flags 2017-11-29 12:29:39 +00:00
i915_gem_fence_reg.c drm/i915: Track user GTT faulting per-vma 2017-10-09 17:07:29 +01:00
i915_gem_fence_reg.h
i915_gem_gtt.c drm/i915/guc: Introduce USES_GUC_xxx helper macros 2017-12-06 14:41:49 +00:00
i915_gem_gtt.h drm/i915: support 64K pages for the 48b PPGTT 2017-10-07 10:11:57 +01:00
i915_gem_internal.c drm/i915: s/sg_mask/sg_page_sizes/ 2017-10-09 17:07:29 +01:00
i915_gem_object.c drm/i915: Split obj->cache_coherent to track r/w 2017-08-15 15:46:57 +01:00
i915_gem_object.h drm/i915/gvt: Dmabuf support for GVT-g 2017-12-04 11:24:33 +08:00
i915_gem_render_state.c drm/i915: Pull the unconditional GPU cache invalidation into request construction 2017-11-20 15:56:16 +00:00
i915_gem_render_state.h drm/i915: Stop caching the "golden" renderstate 2017-11-10 17:23:22 +00:00
i915_gem_request.c drm/i915: Unwind incomplete legacy context switches 2017-11-23 16:12:04 +00:00
i915_gem_request.h drm/i915/scheduler: Support user-defined priorities 2017-10-04 17:52:46 +01:00
i915_gem_shrinker.c drm/i915: Update shrinker drm_i915_private naming convention 2017-11-27 16:37:15 +00:00
i915_gem_stolen.c drm/i915: Use ELK stolen memory reserved detection for ILK 2017-11-15 18:49:10 +02:00
i915_gem_tiling.c drm/i915: Introduce GEM proxy 2017-11-14 12:26:36 +00:00
i915_gem_timeline.c drm/i915: Rename i915_gem_timelines_mark_idle 2017-11-27 16:37:15 +00:00
i915_gem_timeline.h drm/i915: Rename i915_gem_timelines_mark_idle 2017-11-27 16:37:15 +00:00
i915_gem_userptr.c drm/i915: Mark the userptr invalidate workqueue as WQ_MEM_RECLAIM 2017-11-17 10:58:55 +00:00
i915_gemfs.c drm/i915: Disable THP until we have a GPU read BW W/A 2017-11-29 09:54:59 +02:00
i915_gemfs.h drm/i915: introduce simple gemfs 2017-10-07 10:11:41 +01:00
i915_gpu_error.c drm/i915: Set fake_vma.size as well as fake_vma.node.size for capture 2017-12-01 09:17:04 +00:00
i915_ioc32.c
i915_irq.c drm/i915/guc: Introduce USES_GUC_xxx helper macros 2017-12-06 14:41:49 +00:00
i915_memcpy.c
i915_mm.c
i915_oa_bdw.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_bdw.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_bxt.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_bxt.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_cflgt2.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_cflgt2.h drm/i915/perf: add support for Coffeelake GT2 2017-09-18 19:46:36 +01:00
i915_oa_cflgt3.c drm/i915/perf: add support for Coffeelake GT3 2017-11-13 15:59:03 +00:00
i915_oa_cflgt3.h drm/i915/perf: add support for Coffeelake GT3 2017-11-13 15:59:03 +00:00
i915_oa_chv.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_chv.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_cnl.c drm/i915/perf: enable perf support on CNL 2017-11-13 15:59:24 +00:00
i915_oa_cnl.h drm/i915/perf: enable perf support on CNL 2017-11-13 15:59:24 +00:00
i915_oa_glk.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_glk.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_hsw.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_hsw.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_kblgt2.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_kblgt2.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_kblgt3.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_kblgt3.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_sklgt2.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_sklgt2.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_sklgt3.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_sklgt3.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_oa_sklgt4.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_sklgt4.h drm/i915/perf: prune OA configs 2017-08-03 18:18:05 +01:00
i915_params.c drm/i915/guc: Combine enable_guc_loading|submission modparams 2017-12-06 14:41:52 +00:00
i915_params.h drm/i915/guc: Combine enable_guc_loading|submission modparams 2017-12-06 14:41:52 +00:00
i915_pci.c drm/i915: Remove unsafe i915.enable_rc6 2017-12-01 15:20:02 +00:00
i915_perf.c drm/i915: Remove i915.enable_execlists module parameter 2017-11-20 21:53:59 +00:00
i915_pmu.c drm/i915: Remove unsafe i915.enable_rc6 2017-12-01 15:20:02 +00:00
i915_pmu.h drm/i915/pmu: Stop averaging with the previous sample 2017-11-24 13:20:48 +00:00
i915_pvinfo.h drm/i915: enable to read CSB and CSB write pointer from HWSP in GVT-g VM 2017-10-16 13:56:29 +03:00
i915_reg.h drm/i915/pmu: Expose a PMU interface for perf queries 2017-11-22 11:24:57 +00:00
i915_selftest.h drm/i915/selftests: Reduce the volume of the timeout message 2017-11-10 11:31:58 +00:00
i915_suspend.c drm/i915: Move i915_gem_restore_fences to i915_gem_resume 2017-09-29 12:30:17 +01:00
i915_sw_fence.c drm/i915: Convert timers to use timer_setup() 2017-10-18 14:56:10 +03:00
i915_sw_fence.h main drm pull for v4.13 2017-07-09 18:48:37 -07:00
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c drm/i915: Remove unsafe i915.enable_rc6 2017-12-01 15:20:02 +00:00
i915_trace.h drm/i915: Remove defunct trace points 2017-10-04 15:19:20 +01:00
i915_trace_points.c
i915_utils.h drm/i915: Warn in debug builds of incorrect usages of ptr_pack_bits 2017-11-03 09:28:06 +00:00
i915_vgpu.c drm/i915: Enable guest i915 full ppgtt functionality 2017-08-15 10:12:48 +08:00
i915_vgpu.h drm/i915: enable to read CSB and CSB write pointer from HWSP in GVT-g VM 2017-10-16 13:56:29 +03:00
i915_vma.c drm/i915: Remove vma from object on destroy, not close 2017-12-07 14:00:20 +00:00
i915_vma.h drm/i915: Track user GTT faulting per-vma 2017-10-09 17:07:29 +01:00
intel_acpi.c
intel_atomic.c
intel_atomic_plane.c drm/i915: Pass proper old/new states to intel_plane_atomic_check_with_state() 2017-09-01 16:48:24 +03:00
intel_audio.c drm/i915: Fix kerneldocs for intel_audio.c 2017-11-15 17:32:54 +02:00
intel_bios.c Merge airlied/drm-next into drm-intel-next-queued 2017-11-14 07:43:00 -08:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Clear breadcrumb node when cancelling signaling 2017-11-16 14:17:08 +00:00
intel_cdclk.c drm/i915: Make ips_enabled a property depending on whether IPS is enabled, v3. 2017-11-30 16:49:42 +01:00
intel_color.c drm/i915: Pass crtc_state to ips toggle functions, v2 2017-11-17 12:14:25 +01:00
intel_crt.c drm/i915: Eliminate crtc->config usage from CRT code 2017-11-09 20:05:18 +02:00
intel_csr.c drm/i915/skl: DMC firmware for skylake v1.27 2017-12-05 15:57:08 +02:00
intel_ddi.c drm/i915/cnl: Mask previous DDI - PLL mapping 2017-12-01 09:44:03 -08:00
intel_device_info.c drm/i915/cnl: only divide up base frequency with crystal source 2017-12-04 16:16:11 -02:00
intel_display.c drm/i915: Pass crtc state to intel_pipe_{enable,disable}() 2017-12-01 17:05:16 +02:00
intel_dp.c drm/i915: Interlaced DP output doesn't work on VLV/CHV 2017-12-01 17:05:16 +02:00
intel_dp_aux_backlight.c drm/i915: Rename global i915 to i915_modparams 2017-09-22 14:50:36 +03:00
intel_dp_link_training.c drm/i915: Explicit the connector name for DP link training result 2017-07-19 08:32:42 +02:00
intel_dp_mst.c drm/i915: Nuke intel_digital_port->port 2017-11-09 20:06:14 +02:00
intel_dpio_phy.c drm/i915: Nuke intel_digital_port->port 2017-11-09 20:06:14 +02:00
intel_dpll_mgr.c drm/i915/cnl: Simplify dco_fraction calculation. 2017-11-16 09:45:39 -08:00
intel_dpll_mgr.h
intel_drv.h drm/i915: Remove unsafe i915.enable_rc6 2017-12-01 15:20:02 +00:00
intel_dsi.c drm/i915: Eliminate some encoder->crtc usage from DSI code 2017-11-09 20:04:35 +02:00
intel_dsi.h
intel_dsi_dcs_backlight.c drm/i915: Initialize 'data' in intel_dsi_dcs_backlight.c 2017-08-16 18:02:00 +03:00
intel_dsi_pll.c
intel_dsi_vbt.c drm/i915/bxt: use NULL for GPIO connection ID 2017-08-21 11:52:29 +03:00
intel_dvo.c drm/i915: Populate output_types from .get_config() 2017-10-30 19:53:22 +02:00
intel_engine_cs.c drm/i915/glk: Apply WaProgramL3SqcReg1DefaultForPerf for GLK too 2017-11-30 13:32:51 +02:00
intel_fbc.c drm/i915: Nuke crtc->plane 2017-11-21 19:51:34 +02:00
intel_fbdev.c drm/i915/fbdev: Serialise early hotplug events with async fbdev config 2017-11-26 12:44:59 +00:00
intel_fifo_underrun.c drm/i915: Don't rmw PIPESTAT enable bits 2017-09-25 16:54:09 +03:00
intel_frontbuffer.c
intel_frontbuffer.h
intel_guc.c drm/i915/guc: Introduce USES_GUC_xxx helper macros 2017-12-06 14:41:49 +00:00
intel_guc.h drm/i915/guc: Rename i915_guc_reg.h to intel_guc_reg.h 2017-11-24 12:09:59 +00:00
intel_guc_ct.c drm/i915/guc: Assert ctch->vma is allocated 2017-11-06 13:57:37 +00:00
intel_guc_ct.h
intel_guc_fw.c drm/i915/guc: Move firmware selection to init_early 2017-12-06 14:41:47 +00:00
intel_guc_fw.h drm/i915/guc: Move firmware selection to init_early 2017-12-06 14:41:47 +00:00
intel_guc_fwif.h drm/i915/guc: Add support for reset engine using GuC commands 2017-11-02 08:42:11 +00:00
intel_guc_log.c drm/i915/guc: Introduce USES_GUC_xxx helper macros 2017-12-06 14:41:49 +00:00
intel_guc_log.h drm/i915: Unify uC variable types to avoid flooding checkpatch.pl 2017-10-06 14:09:40 +03:00
intel_guc_reg.h drm/i915/guc: Use consistent name for scratch register count 2017-11-24 20:47:39 +00:00
intel_guc_submission.c drm/i915: Consolidate checks for engine stats availability 2017-11-29 12:29:40 +00:00
intel_guc_submission.h drm/i915/guc: Update header guard name of intel_guc_submission.h 2017-11-24 10:34:30 +00:00
intel_gvt.c drm/i915/guc: Introduce USES_GUC_xxx helper macros 2017-12-06 14:41:49 +00:00
intel_gvt.h
intel_hangcheck.c drm/i915: Remove obsolete ringbuffer emission for gen8+ 2017-11-20 21:54:58 +00:00
intel_hdmi.c drm/i915: add platform tag to WA 2017-12-05 14:04:29 -08:00
intel_hotplug.c drm/i915: Introduce intel_hpd_pin function. 2017-08-11 11:53:47 -07:00
intel_huc.c drm/i915/huc: Load HuC only if requested 2017-12-06 14:41:54 +00:00
intel_huc.h drm/i915/huc: Load HuC only if requested 2017-12-06 14:41:54 +00:00
intel_i2c.c drm/i915: Prevent zero length "index" write 2017-11-24 16:41:30 +02:00
intel_lpe_audio.c
intel_lrc.c drm/i915: Consolidate checks for engine stats availability 2017-11-29 12:29:40 +00:00
intel_lrc.h drm/i915: Remove i915.enable_execlists module parameter 2017-11-20 21:53:59 +00:00
intel_lspcon.c drm/i915: Add retries for LSPCON detection 2017-10-13 12:15:10 +03:00
intel_lvds.c drm/i915: Populate output_types from .get_config() 2017-10-30 19:53:22 +02:00
intel_mocs.c
intel_mocs.h
intel_modes.c drm/i915: always update ELD connector type after get modes 2017-09-26 09:14:20 -07:00
intel_opregion.c drm/i915: Nuke intel_ddi_get_encoder_port() 2017-10-30 19:55:18 +02:00
intel_overlay.c drm: Pass struct drm_file * to __drm_mode_object_find [v2] 2017-10-12 10:03:04 +10:00
intel_panel.c drm/i915: hide unused intel_panel_set_backlight function 2017-11-27 17:27:15 +01:00
intel_pipe_crc.c drm/i915: Make ips_enabled a property depending on whether IPS is enabled, v3. 2017-11-30 16:49:42 +01:00
intel_pm.c drm/i915: add platform tag to WA 2017-12-05 14:04:29 -08:00
intel_psr.c drm/i915: Nuke intel_digital_port->port 2017-11-09 20:06:14 +02:00
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c drm/i915/gen9: Send all components in VF state 2017-08-14 12:15:49 +03:00
intel_ringbuffer.c drm/i915: Move mi_set_context() into the legacy ringbuffer submission 2017-11-23 16:12:06 +00:00
intel_ringbuffer.h drm/i915: Consolidate checks for engine stats availability 2017-11-29 12:29:40 +00:00
intel_runtime_pm.c drm/i915: Start tracking voltage level in the cdclk state 2017-10-25 13:40:00 +03:00
intel_sdvo.c drm/i915: Eliminate some encoder->crtc usage from SDVO code 2017-11-09 20:04:47 +02:00
intel_sdvo_regs.h
intel_sideband.c drm/i915: Move rps.hw_lock to dev_priv and s/hw_lock/pcu_lock 2017-10-11 08:56:56 +01:00
intel_sprite.c drm/i915: s/enum plane/enum i9xx_plane_id/ 2017-11-21 19:44:03 +02:00
intel_tv.c drm/i915: Eliminate some encoder->crtc usage from TV code 2017-11-09 20:04:56 +02:00
intel_uc.c drm/i915/huc: Load HuC only if requested 2017-12-06 14:41:54 +00:00
intel_uc.h drm/i915/guc: Combine enable_guc_loading|submission modparams 2017-12-06 14:41:52 +00:00
intel_uc_fw.c drm/i915/uc: Don't use -EIO to report missing firmware 2017-12-06 14:41:52 +00:00
intel_uc_fw.h drm/i915/guc: Move firmware selection to init_early 2017-12-06 14:41:47 +00:00
intel_uncore.c drm/i915: Remove unsafe i915.enable_rc6 2017-12-01 15:20:02 +00:00
intel_uncore.h drm/i915: Re-register PMIC bus access notifier on runtime resume 2017-11-15 09:55:12 +01:00
intel_vbt_defs.h drm/i915: Parse max HDMI TMDS clock from VBT 2017-10-30 19:48:11 +02:00