linux_dsm_epyc7002/drivers/gpu/drm/i915
Nick Hoath b3a38998f0 drm/i915: Fix a use after free, and unbalanced refcounting
When converting from implicitly tracked execlist queue items to ref counted
requests, not all frees of requests were replaced with unrefs, and extraneous
refs/unrefs of contexts were added.
Correct the unbalanced refcount & replace the frees.
Remove a noisy warning when hitting the request creation path.

drm_i915_gem_request and intel_context are both kref reference counted
structures. Upon allocation, drm_i915_gem_request's ref count should be
bumped using kref_init. When a context is assigned to the request,
the context's reference count should be bumped using i915_gem_context_reference.
i915_gem_request_reference will reduce the context reference count when
the request is freed.

Problem introduced in
commit 6d3d8274bc
Author:     Nick Hoath <nicholas.hoath@intel.com>
AuthorDate: Thu Jan 15 13:10:39 2015 +0000

     drm/i915: Subsume intel_ctx_submit_request in to drm_i915_gem_request

v2: Added comments explaining how the ctx pointer and the request object should
be ref-counted. Removed noisy warning.

v3: Cleaned up the language used in the commit & the header
description (Thanks David Gordon)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88652
Signed-off-by: Nick Hoath <nicholas.hoath@intel.com>
Reviewed-by: Thomas Daniel <thomas.daniel@intel.com>
Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2015-02-24 15:18:37 +02:00
..
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c drm/i915: Check pixel clock in ns2501 mode_valid hook 2014-09-03 11:05:21 +02:00
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_cmd_parser.c drm/i915: Add GPGPU_THREADS_DISPATCHED to the register whitelist 2014-12-16 10:39:10 +01:00
i915_debugfs.c drm/i915: Take runtime pm reference on hangcheck_info 2015-02-09 14:29:36 +02:00
i915_dma.c drm/i915: Remove nested work in gpu error handling 2015-01-29 18:03:07 +01:00
i915_drv.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2015-02-16 15:48:00 -08:00
i915_drv.h drm/i915: Fix a use after free, and unbalanced refcounting 2015-02-24 15:18:37 +02:00
i915_gem_batch_pool.c drm/i915: Mark shadow batch buffers as purgeable 2014-12-16 10:39:09 +01:00
i915_gem_context.c Merge tag 'topic/i915-hda-componentized-2015-01-12' into drm-intel-next-queued 2015-01-12 23:07:46 +01:00
i915_gem_debug.c
i915_gem_dmabuf.c dma-buf: use reservation objects 2014-07-08 13:03:20 -07:00
i915_gem_evict.c drm/i915: Add some extra guards in evict_vm 2015-01-06 09:07:59 +01:00
i915_gem_execbuffer.c drm/i915: Specify bsd rings through exec flag 2015-01-27 09:51:05 +01:00
i915_gem_gtt.c drm/i915: Organize bind_vma funcs 2014-12-17 18:23:12 +01:00
i915_gem_gtt.h drm/i915: Infrastructure for supporting different GGTT views per object 2014-12-15 11:25:04 +01:00
i915_gem_render_state.c drm/i915: Remove obsolete seqno parameter from 'i915_add_request' 2014-12-03 09:35:19 +01:00
i915_gem_render_state.h drm/i915/bdw: Render state init for Execlists 2014-09-03 11:04:52 +02:00
i915_gem_stolen.c drm/i915: Don't complain about stolen conflicts on gen3 2014-12-10 11:11:28 +02:00
i915_gem_tiling.c drm/i915: Replace last_[rwf]_seqno with last_[rwf]_req 2014-12-03 09:35:14 +01:00
i915_gem_userptr.c drm/i915: Prevent use-after-free in invalidate_range_start callback 2015-02-05 16:31:30 +02:00
i915_gem.c drm/i915: Fix a use after free, and unbalanced refcounting 2015-02-24 15:18:37 +02:00
i915_gpu_error.c drm/i915: Removed duplicate members from submit_request 2015-01-27 09:50:52 +01:00
i915_ioc32.c drm/i915: remove redundant #ifdef CONFIG_COMPAT 2014-10-24 16:34:07 +02:00
i915_irq.c drm/i915: Remove bogus locking check in the hangcheck code 2015-02-03 17:13:04 +01:00
i915_params.c drm/i915: Add i915.nuclear_pageflip command line param to force atomic (v4) 2015-01-27 09:57:34 +01:00
i915_reg.h drm/i915/skl: Enabling PSR on Skylake 2015-01-28 17:22:29 +01:00
i915_suspend.c Merge tag 'topic/i915-hda-componentized-2015-01-12' into drm-intel-next-queued 2015-01-12 23:07:46 +01:00
i915_sysfs.c drm/i915: Use intel_gpu_freq() and intel_freq_opcode() 2015-01-27 09:51:17 +01:00
i915_trace_points.c
i915_trace.h drm/i915: Additional request structure tracing 2014-12-06 01:46:27 +01:00
i915_ums.c drm/i915: don't save/restore backlight hist ctl registers 2014-11-14 10:29:28 +01:00
intel_acpi.c
intel_atomic_plane.c drm/i915: Switch plane properties to full atomic helper. 2015-01-27 09:57:25 +01:00
intel_atomic.c drm/i915: Add crtc state duplication/destruction functions 2015-01-27 09:57:18 +01:00
intel_audio.c drm/i915: Make intel_crtc->config a pointer 2015-01-27 09:50:50 +01:00
intel_bios.c Revert "drm/i915: Parsing LFP brightness control from VBT" 2015-01-07 09:45:38 +01:00
intel_bios.h Revert "drm/i915: Parsing LFP brightness control from VBT" 2015-01-07 09:45:38 +01:00
intel_crt.c drm/i915: Add atomic_get_property entrypoint for connectors (v2) 2015-01-27 09:57:10 +01:00
intel_ddi.c drm/i915: Use pipe_config's cpu_transcoder for reading encoder hw state 2015-01-30 19:38:43 +01:00
intel_display.c drm/i915: Dell Chromebook 11 has PWM backlight 2015-02-23 15:12:49 +02:00
intel_dp_mst.c drm/i915: Use pipe_config's cpu_transcoder for reading encoder hw state 2015-01-30 19:38:43 +01:00
intel_dp.c drm/i915: Really ignore long HPD pulses on eDP 2015-02-11 14:09:51 +02:00
intel_drv.h drm/i915: Add crtc state duplication/destruction functions 2015-01-27 09:57:18 +01:00
intel_dsi_cmd.h drm/i915/dsi: move dpi_send_cmd() to intel_dsi.c and make it static 2015-01-29 16:56:47 +01:00
intel_dsi_panel_vbt.c drm/i915/dsi: remove intel_dsi_cmd.c and the unused functions therein 2015-01-29 16:57:14 +01:00
intel_dsi_pll.c drm/i915: Use DSI Pll1 for enabling MIPI DSI on Port C 2014-12-10 17:47:21 +01:00
intel_dsi.c drm/i915: Correct the base value while updating LP_OUTPUT_HOLD in MIPI_PORT_CTRL 2015-02-09 20:21:08 +02:00
intel_dsi.h drm/i915/dsi: add drm mipi dsi host support 2015-01-29 16:51:39 +01:00
intel_dvo.c drm/i915: Add atomic_get_property entrypoint for connectors (v2) 2015-01-27 09:57:10 +01:00
intel_fbc.c drm/i915: Move rotation from intel_plane to drm_plane_state 2015-01-27 09:51:18 +01:00
intel_fbdev.c drm/i915: Rename plane_config to initial_plane_config 2015-01-27 09:51:04 +01:00
intel_fifo_underrun.c drivers: gpu: drm: i915: intel_fifo_underrun.c: Fix a typo in comment 2015-01-27 10:30:01 +01:00
intel_frontbuffer.c drm/i915: DRRS calls based on frontbuffer 2015-01-27 09:51:15 +01:00
intel_hdmi.c drm/i915: Add atomic_get_property entrypoint for connectors (v2) 2015-01-27 09:57:10 +01:00
intel_i2c.c drm/i915: Kill duplicated cdclk readout code from i2c 2014-07-07 11:27:52 +02:00
intel_lrc.c drm/i915: Fix a use after free, and unbalanced refcounting 2015-02-24 15:18:37 +02:00
intel_lrc.h drm/i915: Subsume intel_ctx_submit_request in to drm_i915_gem_request 2015-01-27 09:50:53 +01:00
intel_lvds.c drm/i915: Add atomic_get_property entrypoint for connectors (v2) 2015-01-27 09:57:10 +01:00
intel_modes.c
intel_opregion.c ACPI / i915: Update the condition to ignore firmware backlight change request 2014-09-30 01:11:18 +02:00
intel_overlay.c drm/i915: Make intel_crtc->config a pointer 2015-01-27 09:50:50 +01:00
intel_panel.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2015-02-16 15:48:00 -08:00
intel_pm.c drm/i915: Clamp efficient frequency to valid range 2015-02-11 14:09:51 +02:00
intel_psr.c drm/i915/skl: Enabling PSR on Skylake 2015-01-28 17:22:29 +01:00
intel_renderstate_gen6.c drm/i915: Add headers to the various render state 2014-12-10 17:47:23 +01:00
intel_renderstate_gen7.c drm/i915: Add headers to the various render state 2014-12-10 17:47:23 +01:00
intel_renderstate_gen8.c drm/i915: Add headers to the various render state 2014-12-10 17:47:23 +01:00
intel_renderstate_gen9.c drm/i915: Add headers to the various render state 2014-12-10 17:47:23 +01:00
intel_renderstate.h drm/i915 Add golden context support for Gen9 2014-11-04 14:04:55 +01:00
intel_ringbuffer.c drm/i915: Insert a command barrier on BLT/BSD cache flushes 2015-02-09 20:03:15 +02:00
intel_ringbuffer.h drm/i915: Remove FIXME_lrc_ctx backpointer 2015-01-27 09:50:53 +01:00
intel_runtime_pm.c drm/i915/skl: Adding power domains for AUX controllers 2015-01-27 09:50:58 +01:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915: Add atomic_get_property entrypoint for connectors (v2) 2015-01-27 09:57:10 +01:00
intel_sideband.c drm/i915: Correct the IOSF Dev_FN field for IOSF transfers 2015-02-09 14:26:19 +02:00
intel_sprite.c drm/i915: Switch plane properties to full atomic helper. 2015-01-27 09:57:25 +01:00
intel_tv.c drm/i915: Add atomic_get_property entrypoint for connectors (v2) 2015-01-27 09:57:10 +01:00
intel_uncore.c drm/i915: Squelch overzealous uncore reset WARN_ON 2015-02-09 14:35:49 +02:00
Kconfig drm/i915/dsi: add drm mipi dsi host support 2015-01-29 16:51:39 +01:00
Makefile drm/i915/dsi: remove intel_dsi_cmd.c and the unused functions therein 2015-01-29 16:57:14 +01:00