diff options
Diffstat (limited to 'drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c')
| -rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 11 | 
1 files changed, 7 insertions, 4 deletions
| diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c index 48d1380a952e..70dab55e7888 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c @@ -765,7 +765,7 @@ static bool vmw_cmdbuf_try_alloc(struct vmw_cmdbuf_man *man,  	if (info->done)  		return true; -  +  	memset(info->node, 0, sizeof(*info->node));  	spin_lock(&man->lock);  	ret = drm_mm_insert_node(&man->mm, info->node, info->page_size); @@ -1276,8 +1276,10 @@ int vmw_cmdbuf_set_pool_size(struct vmw_cmdbuf_man *man,  	return 0;  out_no_map: -	if (man->using_mob) -		ttm_bo_unref(&man->cmd_space); +	if (man->using_mob) { +		ttm_bo_put(man->cmd_space); +		man->cmd_space = NULL; +	}  	return ret;  } @@ -1380,7 +1382,8 @@ void vmw_cmdbuf_remove_pool(struct vmw_cmdbuf_man *man)  	(void) vmw_cmdbuf_idle(man, false, 10*HZ);  	if (man->using_mob) {  		(void) ttm_bo_kunmap(&man->map_obj); -		ttm_bo_unref(&man->cmd_space); +		ttm_bo_put(man->cmd_space); +		man->cmd_space = NULL;  	} else {  		dma_free_coherent(&man->dev_priv->dev->pdev->dev,  				  man->size, man->map, man->handle); | 
