drm/i915: Disallow preallocation of requests
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 26 Sep 2012 12:47:30 +0000 (13:47 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 12 Oct 2012 08:59:09 +0000 (10:59 +0200)
commitacb868d3d710b09a356d848e0cd44d9713a9e274
treeace446247ba28f770c8be9493e8be7f16852dbf8
parent26b6e44afb58432a5e998da0343757404f9de9ee
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 3bb73aba1ed5198a2c1dfaac4f3c95459930d84a
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>
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/intel_overlay.c