drm/prime: fix to check return of dma_map_sg in prime helper
The dma_map_sg(), in map_dma_buf callback operation of prime helper, can return 0 when it fails to map, so it needs to release related resources. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
2e07fb2293
commit
b720d54a5c
|
@ -97,8 +97,13 @@ static struct sg_table *drm_gem_map_dma_buf(struct dma_buf_attachment *attach,
|
|||
|
||||
sgt = obj->dev->driver->gem_prime_get_sg_table(obj);
|
||||
|
||||
if (!IS_ERR_OR_NULL(sgt))
|
||||
dma_map_sg(attach->dev, sgt->sgl, sgt->nents, dir);
|
||||
if (!IS_ERR_OR_NULL(sgt)) {
|
||||
if (!dma_map_sg(attach->dev, sgt->sgl, sgt->nents, dir)) {
|
||||
sg_free_table(sgt);
|
||||
kfree(sgt);
|
||||
sgt = ERR_PTR(-ENOMEM);
|
||||
}
|
||||
}
|
||||
|
||||
mutex_unlock(&obj->dev->struct_mutex);
|
||||
return sgt;
|
||||
|
|
Loading…
Reference in New Issue