]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915/error: Fix object page offset within a region
authorCQ Tang <cq.tang@intel.com>
Tue, 19 Jan 2021 13:31:04 +0000 (13:31 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 19 Jan 2021 20:36:27 +0000 (20:36 +0000)
io_mapping_map_wc() expects the offset to be relative to the iomapping
base address. Currently we just pass in the physical address for the
page which only works if the region.start starts at zero.

Signed-off-by: CQ Tang <cq.tang@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20210119133106.66294-2-matthew.auld@intel.com
drivers/gpu/drm/i915/i915_gpu_error.c

index 8b163ee1b86d882c1fb579f3c44ae3ce658e36b9..f962693404b79eaa63753be923980d03fd2db9ab 100644 (file)
@@ -1051,7 +1051,9 @@ i915_vma_coredump_create(const struct intel_gt *gt,
                for_each_sgt_daddr(dma, iter, vma->pages) {
                        void __iomem *s;
 
-                       s = io_mapping_map_wc(&mem->iomap, dma, PAGE_SIZE);
+                       s = io_mapping_map_wc(&mem->iomap,
+                                             dma - mem->region.start,
+                                             PAGE_SIZE);
                        ret = compress_page(compress,
                                            (void __force *)s, dst,
                                            true);