Message ID | 1454095171-22475-4-git-send-email-david.s.gordon@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Jan 29, 2016 at 07:19:28PM +0000, Dave Gordon wrote: > The kunmap() call here didn't match the corresponding kmap(). > The kmap()ing was changed with the introduction of the GuC-compatible > layout of context objects and the introduction of "LRC_PPHWSP_PN", in > > d167519 drm/i915: Integrate GuC-based command submission > > but the corresponding kunmap() wasn't, probably because the old code > dug into the underlying sgl implementation instead of than calling > "i915_gem_object_get_page(ring->status_page.obj, 0)", which might more > easily have been noticed as containing an assumption about page 0. > > v3: > Use kmap_to_page() rather than repeat the mapping calculation. > [Chris Wilson] > > Signed-off-by: Dave Gordon <david.s.gordon@intel.com> > Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> I think we are going end up with a kummap_addr() feature request, we have a handful of sites where we reconstruct the orginal page. -Chris
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c index 60d7cdd..0fa2497 100644 --- a/drivers/gpu/drm/i915/intel_lrc.c +++ b/drivers/gpu/drm/i915/intel_lrc.c @@ -2006,7 +2006,7 @@ void intel_logical_ring_cleanup(struct intel_engine_cs *ring) i915_gem_batch_pool_fini(&ring->batch_pool); if (ring->status_page.obj) { - kunmap(sg_page(ring->status_page.obj->pages->sgl)); + kunmap(kmap_to_page(ring->status_page.page_addr)); ring->status_page.obj = NULL; }
The kunmap() call here didn't match the corresponding kmap(). The kmap()ing was changed with the introduction of the GuC-compatible layout of context objects and the introduction of "LRC_PPHWSP_PN", in d167519 drm/i915: Integrate GuC-based command submission but the corresponding kunmap() wasn't, probably because the old code dug into the underlying sgl implementation instead of than calling "i915_gem_object_get_page(ring->status_page.obj, 0)", which might more easily have been noticed as containing an assumption about page 0. v3: Use kmap_to_page() rather than repeat the mapping calculation. [Chris Wilson] Signed-off-by: Dave Gordon <david.s.gordon@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> --- drivers/gpu/drm/i915/intel_lrc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)