drm/i915: check that the i965g/gm 4G limit is really obeyed
authorDaniel Vetter <[email protected]>
Mon, 7 Oct 2013 20:15:45 +0000 (17:15 -0300)
committerDaniel Vetter <[email protected]>
Thu, 10 Oct 2013 10:47:05 +0000 (12:47 +0200)
In truly crazy circumstances shmem might give us the wrong type of
page. So be a bit paranoid and double check this.

Reviewer: Damien Lespiau <[email protected]>
Cc: Rob Clark <[email protected]>
References: http://lkml.org/lkml/2011/7/11/238
Signed-off-by: Daniel Vetter <[email protected]>
Signed-off-by: Rodrigo Vivi <[email protected]>
Reviewed-by: Damien Lespiau <[email protected]>
Signed-off-by: Daniel Vetter <[email protected]>
drivers/gpu/drm/i915/i915_gem.c

index ed9311aaabe72d729c7170e72d0bd97c6005355f..71dd0305eb3235732236038a53902629ba6e20c3 100644 (file)
@@ -1902,6 +1902,9 @@ i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
                        sg->length += PAGE_SIZE;
                }
                last_pfn = page_to_pfn(page);
+
+               /* Check that the i965g/gm workaround works. */
+               WARN_ON((gfp & __GFP_DMA32) && (last_pfn >= 0x00100000UL));
        }
 #ifdef CONFIG_SWIOTLB
        if (!swiotlb_nr_tbl())