diff options
author | Imre Deak <imre.deak@intel.com> | 2013-03-22 23:10:44 +0200 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-03-23 12:15:58 +0100 |
commit | 5bd4687e57bbacec20930f580d025aee9fa1f4d8 (patch) | |
tree | 65a4498008dbbebf69b152535e9aac3846e03e8b /drivers | |
parent | f5ddf69736fb328800ccd1a06fe69ad2e830adbe (diff) | |
download | lwn-5bd4687e57bbacec20930f580d025aee9fa1f4d8.tar.gz lwn-5bd4687e57bbacec20930f580d025aee9fa1f4d8.zip |
drm/i915: set dummy page for stolen objects
This is needed since currently sg_for_each_page assumes that we have
a valid page in each sg item. It is only a real problem for
CONFIG_SPARSEMEM where the page is dereferenced, in other cases the
iterator works ok with an invalid page pointer.
We can remove this workaround when we have fixed sg_page_iter to work on
scatterlists without backing pages.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_stolen.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c index 69d97cbac13c..efaaba5c4194 100644 --- a/drivers/gpu/drm/i915/i915_gem_stolen.c +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c @@ -222,8 +222,8 @@ i915_pages_create_for_stolen(struct drm_device *dev, } sg = st->sgl; - sg->offset = offset; - sg->length = size; + /* we set the dummy page here only to make for_each_sg_page work */ + sg_set_page(sg, dev_priv->gtt.scratch_page, size, offset); sg_dma_address(sg) = (dma_addr_t)dev_priv->mm.stolen_base + offset; sg_dma_len(sg) = size; |