linux_dsm_epyc7002/drivers/gpu/drm/i915
Akash Goel d43f3ebf12 drm/i915: Fixup the free space logic in ring_prepare
Currently for the case where there is enough space at the end of Ring
buffer for accommodating only the base request, the wrapround is done
immediately and as a result the base request gets added at the start
of Ring buffer. But there may not be enough free space at the beginning
to accommodate the base request, as before the wraparound, the wait was
effectively done for the reserved_size free space from the start of
Ring buffer. In such a case there is a potential of Ring buffer overflow,
the instructions at the head of Ring (ACTHD) can get overwritten.

Since the base request can fit in the remaining space, there is no need
to wraparound immediately. The wraparound will anyway happen later when
the reserved part starts getting used.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Akash Goel <akash.goel@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/1457688402-10411-1-git-send-email-akash.goel@intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: stable@vger.kernel.org
(cherry picked from commit 782f6bc0ab)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2016-04-18 12:35:49 +03:00
..
dvo_ch7xxx.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ch7017.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ivch.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ns2501.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_sil164.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_tfp410.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo.h drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
i915_cmd_parser.c drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
i915_debugfs.c drm/i915: Reduce the pointer dance of i915_is_ggtt() 2016-02-26 13:15:39 +00:00
i915_dma.c Revert "drm/i915: fix context/engine cleanup order" 2016-02-15 10:50:13 +01:00
i915_drv.c drm/i915: Call intel_dp_mst_resume() before resuming displays 2016-04-05 11:33:16 +03:00
i915_drv.h drm/i915: Update DRIVER_DATE to 20160229 2016-02-29 09:59:07 +01:00
i915_gem_batch_pool.c
i915_gem_batch_pool.h
i915_gem_context.c drm/i915: Rename vma->*_list to *_link for consistency 2016-02-26 13:15:39 +00:00
i915_gem_debug.c
i915_gem_dmabuf.c dma-buf, drm, ion: Propagate error code from dma_buf_start_cpu_access() 2016-03-19 11:03:49 +01:00
i915_gem_evict.c drm/i915: Rename vma->*_list to *_link for consistency 2016-02-26 13:15:39 +00:00
i915_gem_execbuffer.c drm/i915: Reduce the pointer dance of i915_is_ggtt() 2016-02-26 13:15:39 +00:00
i915_gem_fence.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2016-03-17 21:38:27 -07:00
i915_gem_gtt.c drm/i915: Reduce the pointer dance of i915_is_ggtt() 2016-02-26 13:15:39 +00:00
i915_gem_gtt.h drm/i915: Reduce the pointer dance of i915_is_ggtt() 2016-02-26 13:15:39 +00:00
i915_gem_render_state.c drm/i915: mark GEM object pages dirty when mapped & written by the CPU 2015-12-11 18:11:53 +01:00
i915_gem_render_state.h
i915_gem_shrinker.c drm/i915: Rename vma->*_list to *_link for consistency 2016-02-26 13:15:39 +00:00
i915_gem_stolen.c drm/i915: Rename vma->*_list to *_link for consistency 2016-02-26 13:15:39 +00:00
i915_gem_tiling.c drm/i915: get runtime PM reference around GEM set_tiling IOCTL 2015-11-17 18:43:30 +02:00
i915_gem_userptr.c mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
i915_gem.c mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
i915_gpu_error.c drm/i915: Rename vma->*_list to *_link for consistency 2016-02-26 13:15:39 +00:00
i915_guc_reg.h drm/i915/guc: Add GuC ADS (Addition Data Structure) - allocation 2016-01-05 11:33:34 +01:00
i915_guc_submission.c drm/i915/guc: Decouple GuC engine id from ring id 2016-01-25 10:56:30 +00:00
i915_ioc32.c
i915_irq.c drm/i915: Exit cherryview_irq_handler() after one pass 2016-04-05 11:34:03 +03:00
i915_params.c drm/i915: drop unused i915.disable_vtd_wa module parameter 2016-02-19 17:27:15 +02:00
i915_params.h drm/i915: drop unused i915.disable_vtd_wa module parameter 2016-02-19 17:27:15 +02:00
i915_reg.h drm/i915/gen9: Extend dmc debug mask to include cores 2016-02-22 17:20:28 +02:00
i915_suspend.c drm/i915/bxt: Don't save/restore eDP panel power during suspend (v3) 2016-02-08 11:32:32 +02:00
i915_sysfs.c drm/i915: use kobj_to_dev() 2016-01-13 16:40:50 +01:00
i915_trace_points.c
i915_trace.h drm/i915: Reduce the pointer dance of i915_is_ggtt() 2016-02-26 13:15:39 +00:00
i915_vgpu.c
i915_vgpu.h drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
intel_acpi.c
intel_atomic_plane.c drm/i915: Remove commit_plane function pointer. 2016-01-07 13:52:04 +01:00
intel_atomic.c drm/i915: Kill off intel_crtc->atomic.wait_vblank, v6. 2016-02-25 15:16:22 +01:00
intel_audio.c drm/i915: Fix bogus dig_port_map[] assignment for pre-HSW 2016-03-07 18:45:49 +02:00
intel_bios.c drm/i915/bios: Fix the sequence size calculations for MIPI seq v3 2016-01-15 11:38:11 +02:00
intel_bios.h drm/i915/bios: add defines for v3 sequence block 2016-01-11 19:16:19 +02:00
intel_crt.c drm/i915/crt: Ensure the HW is powered during HW state readout 2016-02-22 17:44:37 +02:00
intel_csr.c drm/i915/gen9: Check for DC state mismatch 2016-02-22 18:37:25 +02:00
intel_ddi.c Merge drm-fixes into drm-next. 2016-03-14 09:46:02 +10:00
intel_display.c drm/i915: Handle -EDEADLK in drm_atomic_commit from load-detect. 2016-03-14 10:50:58 +02:00
intel_dp_link_training.c drm/i915/dp: reduce missing TPS3 support errors to debug logging 2016-02-08 11:37:17 +02:00
intel_dp_mst.c drm/i915: Fix race condition in intel_dp_destroy_mst_connector() 2016-04-05 11:31:27 +03:00
intel_dp.c Merge drm-fixes into drm-next. 2016-03-14 09:46:02 +10:00
intel_drv.h drm/i915: Remove update_sprite_watermarks. 2016-02-25 16:32:19 +01:00
intel_dsi_panel_vbt.c drm/i915/dsi: Using the bpp value wrt the pixel format 2016-02-19 14:56:05 +02:00
intel_dsi_pll.c drm/i915/dsi: Using the bpp value wrt the pixel format 2016-02-19 14:56:05 +02:00
intel_dsi.c drm/i915/dsi: Ensure the HW is powered during HW state readout 2016-02-22 17:44:39 +02:00
intel_dsi.h drm/i915/dsi: Using the bpp value wrt the pixel format 2016-02-19 14:56:05 +02:00
intel_dvo.c drm: Pass 'name' to drm_encoder_init() 2015-12-11 09:13:20 +01:00
intel_fbc.c drm/i915/fbc: enable FBC by default on HSW and BDW 2016-02-19 18:06:16 -02:00
intel_fbdev.c drm/i915: Use atomic state in intel_fb_initial_config. 2016-02-18 10:41:54 +01:00
intel_fifo_underrun.c drm/i915: Introduce bdw_{update,enable,disable}_pipe_irq() 2015-11-26 18:55:39 +02:00
intel_frontbuffer.c
intel_guc_fwif.h drm/i915/guc: Decouple GuC engine id from ring id 2016-01-25 10:56:30 +00:00
intel_guc_loader.c drm/i915/guc: Do not wait for firmware load atomically 2016-02-15 16:10:19 +00:00
intel_guc.h drm/i915/guc: Decouple GuC engine id from ring id 2016-01-25 10:56:30 +00:00
intel_hdmi.c Merge drm-fixes into drm-next. 2016-03-14 09:46:02 +10:00
intel_hotplug.c drm/i915: intel_hpd_init(): Fix suspend/resume reprobing 2016-01-13 10:49:42 +02:00
intel_i2c.c drm/i915: Actually retry with bit-banging after GMBUS timeout 2016-03-11 10:23:28 +02:00
intel_lrc.c drm/i915: Fixup the free space logic in ring_prepare 2016-04-18 12:35:49 +03:00
intel_lrc.h drm/i915: Make LRC (un)pinning work on context and engine 2016-01-28 17:23:15 +00:00
intel_lvds.c drm/i915: fix deadlock on lid open 2016-04-07 11:19:48 +03:00
intel_mocs.c drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
intel_mocs.h
intel_modes.c
intel_opregion.c drm/i915/opregion: handle VBT sizes bigger than 6 KB 2015-12-17 11:40:57 +02:00
intel_overlay.c drm/i915: simplify allocation of driver-internal requests 2016-01-21 09:21:29 +01:00
intel_panel.c drm/i915/backlight: prefer dev_priv over dev pointer 2015-12-18 11:37:44 +02:00
intel_pm.c drm/i915/skl+: Use plane size for relative data rate calculation 2016-04-18 12:35:48 +03:00
intel_psr.c drm/i915: Enable PSR by default on Haswell and Broadwell. 2016-02-17 13:04:48 -08:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_renderstate.h
intel_ringbuffer.c drm/i915: Fixup the free space logic in ring_prepare 2016-04-18 12:35:49 +03:00
intel_ringbuffer.h drm/i915/guc: Decouple GuC engine id from ring id 2016-01-25 10:56:30 +00:00
intel_runtime_pm.c Merge drm-fixes into drm-next. 2016-03-14 09:46:02 +10:00
intel_sdvo_regs.h drm/i915/sdvo: revert bogus kernel-doc comments to normal comments 2016-01-20 10:21:34 +02:00
intel_sdvo.c drm/i915: SDVO pixel clock check 2016-02-11 10:15:44 +01:00
intel_sideband.c drm/i915: Extend gpio read/write to other cores 2016-02-04 19:11:17 +02:00
intel_sprite.c drm/i915: Standardize on 'cpp' for bytes per pixel 2016-01-28 20:56:57 +02:00
intel_tv.c drm/i915: Use atomic state in tv load detection. 2016-02-18 10:41:49 +01:00
intel_uncore.c drm/i915/bxt: Check BIOS RC6 setup before enabling RC6 2016-02-05 23:35:43 +02:00
Kconfig drm/i915: Add an optional selection from i915 of CONFIG_MMU_NOTIFIER 2016-02-17 13:58:46 +01:00
Makefile