]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/dmabuf: fix sg_table handling in map_dma_buf
authorMatthew Auld <matthew.auld@intel.com>
Fri, 28 Oct 2022 15:50:26 +0000 (16:50 +0100)
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>
Mon, 7 Nov 2022 13:12:57 +0000 (13:12 +0000)
commit58679abe46f860ef45838430fc143296146e88d6
treee3b6061e29ec2c33656ad4f03f80035e28a9d0da
parent1770926829ab8f89e374b4a7bb3bc1c0cb73d2da
drm/i915/dmabuf: fix sg_table handling in map_dma_buf

We need to iterate over the original entries here for the sg_table,
pulling out the struct page for each one, to be remapped. However
currently this incorrectly iterates over the final dma mapped entries,
which is likely just one gigantic sg entry if the iommu is enabled,
leading to us only mapping the first struct page (and any physically
contiguous pages following it), even if there is potentially lots more
data to follow.

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/7306
Fixes: 3e85784a44c2 ("i915: add dmabuf/prime buffer sharing support.")
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Michael J. Ruhl <michael.j.ruhl@intel.com>
Cc: <stable@vger.kernel.org> # v3.5+
Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221028155029.494736-1-matthew.auld@intel.com
(cherry picked from commit 28d52f99bbca7227008cf580c9194c9b3516968e)
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c