drm/i915: Skip allocating shadow batch for 0-length batches
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 27 Mar 2015 11:02:10 +0000 (11:02 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 27 Mar 2015 14:28:41 +0000 (15:28 +0100)
Since

commit 17cabf571e50677d980e9ab2a43c5f11213003ae
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 14 11:20:57 2015 +0000

    drm/i915: Trim the command parser allocations

we may then try to allocate a zero-sized object and attempt to extract
its pages. Understandably this fails.

Testcase: igt/gem_exec_nop #ivb,byt,hsw
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem_execbuffer.c

index 43335de0f713efd89d5e7d029cf92dd97a8452b6..a3190e793ed43744980bedba4ed42e1d0e38d597 100644 (file)
@@ -1547,7 +1547,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
                goto err;
        }
 
-       if (i915_needs_cmd_parser(ring)) {
+       if (i915_needs_cmd_parser(ring) && args->batch_len) {
                batch_obj = i915_gem_execbuffer_parse(ring,
                                                      &shadow_exec_entry,
                                                      eb,