In vmw_ttm_bind(), if vmw_mob_create() fails, call
vmw_ttm_unmap_dma() to release the memory allocated
by vmw_ttm_map_dma().

Signed-off-by: Haoxiang Li <[email protected]>
---
 drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
index 5553892d7c3e..6f6a73a7c857 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
@@ -299,8 +299,10 @@ static int vmw_ttm_bind(struct ttm_device *bdev,
                if (unlikely(vmw_be->mob == NULL)) {
                        vmw_be->mob =
                                vmw_mob_create(ttm->num_pages);
-                       if (unlikely(vmw_be->mob == NULL))
+                       if (unlikely(vmw_be->mob == NULL)) {
+                               vmw_ttm_unmap_dma(vmw_be);
                                return -ENOMEM;
+                       }
                }
 
                ret = vmw_mob_bind(vmw_be->dev_priv, vmw_be->mob,
-- 
2.25.1

Reply via email to