diff options
author | Sui Jingfeng <[email protected]> | 2023-07-06 21:40:00 +0800 |
---|---|---|
committer | Chun-Kuang Hu <[email protected]> | 2023-08-13 14:26:13 +0000 |
commit | 379091e0f6d179d1a084c65de90fa44583b14a70 (patch) | |
tree | bf5cddd9f58c8fa720e154eb53f00f380141adfd | |
parent | ed6adfb7d4b5cb912c763f87dfedc1d41d3c4a49 (diff) |
drm/mediatek: Fix potential memory leak if vmap() fail
Also return -ENOMEM if such a failure happens, the implement should take
responsibility for the error handling.
Fixes: 3df64d7b0a4f ("drm/mediatek: Implement gem prime vmap/vunmap function")
Reviewed-by: Matthias Brugger <[email protected]>
Reviewed-by: Alexandre Mergnat <[email protected]>
Signed-off-by: Sui Jingfeng <[email protected]>
Reviewed-by: CK Hu <[email protected]>
Reviewed-by: AngeloGioacchino Del Regno <[email protected]>
Link: https://patchwork.kernel.org/project/dri-devel/patch/[email protected]/
Signed-off-by: Chun-Kuang Hu <[email protected]>
-rw-r--r-- | drivers/gpu/drm/mediatek/mtk_drm_gem.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_gem.c b/drivers/gpu/drm/mediatek/mtk_drm_gem.c index a25b28d3ee90..9f364df52478 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_gem.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_gem.c @@ -247,7 +247,11 @@ int mtk_drm_gem_prime_vmap(struct drm_gem_object *obj, struct iosys_map *map) mtk_gem->kvaddr = vmap(mtk_gem->pages, npages, VM_MAP, pgprot_writecombine(PAGE_KERNEL)); - + if (!mtk_gem->kvaddr) { + kfree(sgt); + kfree(mtk_gem->pages); + return -ENOMEM; + } out: kfree(sgt); iosys_map_set_vaddr(map, mtk_gem->kvaddr); |