The device parameter to dma_get_sgtable should match the allocating device, not the consuming device. Fix the calls.
Signed-off-by: Mikko Perttunen <[email protected]> --- drivers/gpu/drm/tegra/gem.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c index f76af733ea79..c4241ce8f71c 100644 --- a/drivers/gpu/drm/tegra/gem.c +++ b/drivers/gpu/drm/tegra/gem.c @@ -125,7 +125,8 @@ static struct host1x_bo_mapping *tegra_bo_pin(struct device *dev, struct host1x_ * not imported, it had to be allocated with the DMA API, so * the DMA API helper can be used. */ - err = dma_get_sgtable(dev, map->sgt, obj->vaddr, obj->iova, gem->size); + err = dma_get_sgtable(gem->dev->dev, map->sgt, obj->vaddr, + obj->iova, gem->size); if (err < 0) goto free; } @@ -643,7 +644,7 @@ tegra_gem_prime_map_dma_buf(struct dma_buf_attachment *attach, 0, gem->size, GFP_KERNEL) < 0) goto free; } else { - if (dma_get_sgtable(attach->dev, sgt, bo->vaddr, bo->iova, + if (dma_get_sgtable(gem->dev->dev, sgt, bo->vaddr, bo->iova, gem->size) < 0) goto free; } -- 2.55.0
