From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Mon, 19 Dec 2016 12:43:46 +0000 (+0000)
Subject: drm/i915: Add a test that we terminate the trimmed sgtable as expected
X-Git-Tag: v4.11-rc1~83^2~47^2~72
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=c2dc6cc946aa8463e1e7676c8f82334c1dc8a01c;p=users%2Fwilly%2Flinux.git

drm/i915: Add a test that we terminate the trimmed sgtable as expected

In commit 0c40ce130e38 ("drm/i915: Trim the object sg table"), we expect
to copy exactly orig_st->nents across and allocate the table thusly.
The copy loop should therefore end with the new_sg being NULL.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20161219124346.550-2-chris@chris-wilson.co.uk
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 06d3c4818b0a..5275f6248ce3 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2333,6 +2333,7 @@ static void i915_sg_trim(struct sg_table *orig_st)
 		/* called before being DMA mapped, no need to copy sg->dma_* */
 		new_sg = sg_next(new_sg);
 	}
+	GEM_BUG_ON(new_sg); /* Should walk exactly nents and hit the end */
 
 	sg_free_table(orig_st);