drm/i915/error: skip non-mappable pages
Skip capturing any lmem pages that can't be copied using the CPU. This in now only best effort on platforms that have small BAR. Testcase: igt@gem-exec-capture@capture-invisible Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Cc: Jon Bloomfield <jon.bloomfield@intel.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Kenneth Graunke <kenneth@whitecape.org> Cc: Akeem G Abodunrin <akeem.g.abodunrin@intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220629174350.384910-7-matthew.auld@intel.com
This commit is contained in:
parent
525e93f631
commit
d42a738e5a
@ -1129,11 +1129,15 @@ i915_vma_coredump_create(const struct intel_gt *gt,
|
||||
dma_addr_t dma;
|
||||
|
||||
for_each_sgt_daddr(dma, iter, vma_res->bi.pages) {
|
||||
dma_addr_t offset = dma - mem->region.start;
|
||||
void __iomem *s;
|
||||
|
||||
s = io_mapping_map_wc(&mem->iomap,
|
||||
dma - mem->region.start,
|
||||
PAGE_SIZE);
|
||||
if (offset + PAGE_SIZE > mem->io_size) {
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
|
||||
s = io_mapping_map_wc(&mem->iomap, offset, PAGE_SIZE);
|
||||
ret = compress_page(compress,
|
||||
(void __force *)s, dst,
|
||||
true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user