| From 1aee589fb9eed16d6457035bcdce2b21938ec9c9 Mon Sep 17 00:00:00 2001 |
| From: Daniel Vetter <daniel.vetter@ffwll.ch> |
| Date: Mon, 7 Oct 2013 17:15:45 -0300 |
| Subject: drm/i915: check that the i965g/gm 4G limit is really obeyed |
| |
| 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 <damien.lespiau@intel.com> |
| Cc: Rob Clark <robdclark@gmail.com> |
| References: http://lkml.org/lkml/2011/7/11/238 |
| Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
| Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com> |
| Reviewed-by: Damien Lespiau <damien.lespiau@intel.com> |
| Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
| (cherry picked from commit 3bbbe706e8e6dac36ae893dc23bdb378dd4f4413) |
| Signed-off-by: Darren Hart <dvhart@linux.intel.com> |
| --- |
| drivers/gpu/drm/i915/i915_gem.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c |
| index 45571dac0a64..729e5c383370 100644 |
| --- a/drivers/gpu/drm/i915/i915_gem.c |
| +++ b/drivers/gpu/drm/i915/i915_gem.c |
| @@ -1896,6 +1896,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()) |
| -- |
| 1.8.5.rc3 |
| |