linux/drivers/gpu/drm/i915
Chris Wilson acb868d3d7 drm/i915: Disallow preallocation of requests
The intention was to allow the caller to avoid a failure to queue a
request having already written commands to the ring. However, this is a
moot point as the i915_add_request() can fail for other reasons than a
mere allocation failure and those failure cases are more likely than
ENOMEM. So the overlay code already had to handle i915_add_request()
failures, and due to

commit 3bb73aba1e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jul 20 12:40:59 2012 +0100

    drm/i915: Allow late allocation of request for i915_add_request()

the error handling code in intel_overlay.c was subject to causing
double-frees, as found by coverity.

Rather than further complicate i915_add_request() and callers, realise
the battle is lost and adapt intel_overlay.c to take advantage of the
late allocation of requests.

v2: Handle callers passing in a NULL seqno.
v3: Ditto. This time for sure.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-12 10:59:09 +02:00
..
dvo_ch7xxx.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ch7017.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ivch.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ns2501.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_sil164.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_tfp410.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo.h drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
i915_debugfs.c drm/i915: #define gpu freq multipler 2012-09-20 14:23:00 +02:00
i915_dma.c drm/i915: s/cacheing/caching/ 2012-09-26 09:24:36 +02:00
i915_drv.c Merge the modeset-rework, basic conversion into drm-intel-next 2012-09-06 22:52:43 +02:00
i915_drv.h drm/i915: Disallow preallocation of requests 2012-10-12 10:59:09 +02:00
i915_gem_context.c drm/i915: Actually invalidate the TLB for the SandyBridge HW contexts w/a 2012-10-02 10:28:18 +02:00
i915_gem_debug.c drm/i915: stop using dev->agp->base 2012-06-12 22:18:06 +02:00
i915_gem_dmabuf.c drm/i915: Convert the dmabuf object to use the new i915_gem_object_ops 2012-09-20 14:23:10 +02:00
i915_gem_evict.c drm/i915: Only pwrite through the GTT if there is space in the aperture 2012-08-24 02:03:33 +02:00
i915_gem_execbuffer.c drm/i915: Assert that the exec object lookup table is a power-of-two 2012-09-20 14:23:11 +02:00
i915_gem_gtt.c Linux 3.6-rc7 2012-09-24 18:17:12 +02:00
i915_gem_stolen.c drm/i915: Split the stolen handling for GEM out of i915_dma.c 2012-05-03 11:18:11 +02:00
i915_gem_tiling.c drm/i915: set swizzling to none on VLV 2012-10-03 09:15:29 +02:00
i915_gem.c drm/i915: Disallow preallocation of requests 2012-10-12 10:59:09 +02:00
i915_ioc32.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_irq.c drm/i915: call drm_handle_vblank before finish_page_flip 2012-10-04 10:33:43 +02:00
i915_reg.h drm/i915: Set guardband clipping workaround bit in the right register. 2012-10-12 10:59:02 +02:00
i915_suspend.c Linux 3.5-rc7 2012-07-20 00:53:28 -04:00
i915_sysfs.c drm/i915: Fix !CONFIG_PM sysfs for real this time 2012-09-20 14:23:11 +02:00
i915_trace_points.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_trace.h drm/i915: add a tracepoint for gpu frequency changes 2012-09-03 10:09:27 +02:00
intel_acpi.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
intel_bios.c drm/i915/bios: cleanup return type of intel_parse_bios() 2012-06-27 10:17:51 +01:00
intel_bios.h drm/i915/bios: cleanup return type of intel_parse_bios() 2012-06-27 10:17:51 +01:00
intel_crt.c Merge the modeset-rework, basic conversion into drm-intel-next 2012-09-06 22:52:43 +02:00
intel_ddi.c drm/i915/hdmi: implement get_hw_state 2012-09-06 07:58:22 +02:00
intel_display.c drm/i915: paper over a pipe-enable vs pageflip race 2012-10-08 19:31:04 +02:00
intel_dp.c drm/i915: Try harder to complete DP training pattern 1 2012-10-04 10:33:41 +02:00
intel_drv.h drm/i915/dp: Fetch downstream port info if needed during DPCD fetch 2012-10-02 18:06:06 +02:00
intel_dvo.c drm/i915: improve modeset state checking after dpms calls 2012-09-06 08:21:31 +02:00
intel_fb.c drm/i915: Zero initialize mode_cmd 2012-07-05 13:27:58 +02:00
intel_hdmi.c drm/i915: make sure we write all the DIP data bytes 2012-09-26 09:24:09 +02:00
intel_i2c.c drm/i915: ensure i2c adapter is all set before adding it 2012-08-13 19:04:24 +02:00
intel_lvds.c Linux 3.6-rc7 2012-09-24 18:17:12 +02:00
intel_modes.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into drm-next 2012-08-27 16:22:20 +10:00
intel_opregion.c i915: initialize CADL in opregion 2012-09-20 14:23:05 +02:00
intel_overlay.c drm/i915: Disallow preallocation of requests 2012-10-12 10:59:09 +02:00
intel_panel.c drm/i915: do not expose a dysfunctional backlight interface to userspace 2012-09-03 20:42:10 +02:00
intel_pm.c drm/i915: Set guardband clipping workaround bit in the right register. 2012-10-12 10:59:02 +02:00
intel_ringbuffer.c drm/i915: Replace the array of pages with a scatterlist 2012-09-20 14:22:57 +02:00
intel_ringbuffer.h drm/i915: Lazily apply the SNB+ seqno w/a 2012-08-10 11:11:32 +02:00
intel_sdvo_regs.h drm/i915: properly handle interlaced bit for sdvo dtd conversion 2012-05-24 17:53:52 +02:00
intel_sdvo.c Merge the modeset-rework, basic conversion into drm-intel-next 2012-09-06 22:52:43 +02:00
intel_sprite.c drm/i915: fix color order for BGR formats on IVB 2012-08-23 11:44:53 +02:00
intel_tv.c drm/i915: s/intel_encoder_disable/intel_encoder_noop 2012-09-06 08:21:27 +02:00
Makefile drm/i915: Support for ns2501-DVO 2012-07-25 18:23:48 +02:00