diff options
author | Anand K Mistry <amistry@chromium.org> | 2020-04-20 16:08:34 +1000 |
---|---|---|
committer | Chun-Kuang Hu <chunkuang.hu@kernel.org> | 2020-05-21 00:10:08 +0800 |
commit | 9a67bc4aac82d18132e8a5677926f05d43e44e77 (patch) | |
tree | edd0bd1b54812bee275e4be3582b2cc9fac066e8 | |
parent | 424a3a706aac4ec70de4414f5bce62c09a3d76e1 (diff) | |
download | linux-9a67bc4aac82d18132e8a5677926f05d43e44e77.tar.gz |
drm/mediatek: Stop iterating dma addresses when sg_dma_len() == 0
If dma_map_sg() merges pages when creating the mapping, only the first
entries will have a valid sg_dma_address() and sg_dma_len(), followed by
entries with sg_dma_len() == 0.
Signed-off-by: Anand K Mistry <amistry@google.com>
Signed-off-by: Anand K Mistry <amistry@chromium.org>
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
-rw-r--r-- | drivers/gpu/drm/mediatek/mtk_drm_gem.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_gem.c b/drivers/gpu/drm/mediatek/mtk_drm_gem.c index b04a3c2b111e..f8fd8b98c30e 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_gem.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_gem.c @@ -224,6 +224,9 @@ struct drm_gem_object *mtk_gem_prime_import_sg_table(struct drm_device *dev, expected = sg_dma_address(sg->sgl); for_each_sg(sg->sgl, s, sg->nents, i) { + if (!sg_dma_len(s)) + break; + if (sg_dma_address(s) != expected) { DRM_ERROR("sg_table is not contiguous"); ret = -EINVAL; |