diff options
Diffstat (limited to 'drivers/gpu')
| -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 9f364df52478..0e0a41b2f57f 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_gem.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_gem.c @@ -239,6 +239,7 @@ int mtk_drm_gem_prime_vmap(struct drm_gem_object *obj, struct iosys_map *map)  	npages = obj->size >> PAGE_SHIFT;  	mtk_gem->pages = kcalloc(npages, sizeof(*mtk_gem->pages), GFP_KERNEL);  	if (!mtk_gem->pages) { +		sg_free_table(sgt);  		kfree(sgt);  		return -ENOMEM;  	} @@ -248,12 +249,15 @@ 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) { +		sg_free_table(sgt);  		kfree(sgt);  		kfree(mtk_gem->pages);  		return -ENOMEM;  	} -out: +	sg_free_table(sgt);  	kfree(sgt); + +out:  	iosys_map_set_vaddr(map, mtk_gem->kvaddr);  	return 0; |