diff options
Diffstat (limited to 'drivers/gpu/drm/vmwgfx/vmwgfx_mob.c')
| -rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 21 | 
1 files changed, 14 insertions, 7 deletions
| diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c b/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c index 7ed179d30ec5..d83cc66e1210 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c @@ -300,7 +300,8 @@ out_no_setup:  						 &batch->otables[i]);  	} -	ttm_bo_unref(&batch->otable_bo); +	ttm_bo_put(batch->otable_bo); +	batch->otable_bo = NULL;  out_no_bo:  	return ret;  } @@ -365,7 +366,8 @@ static void vmw_otable_batch_takedown(struct vmw_private *dev_priv,  	vmw_bo_fence_single(bo, NULL);  	ttm_bo_unreserve(bo); -	ttm_bo_unref(&batch->otable_bo); +	ttm_bo_put(batch->otable_bo); +	batch->otable_bo = NULL;  }  /* @@ -463,7 +465,8 @@ static int vmw_mob_pt_populate(struct vmw_private *dev_priv,  out_unreserve:  	ttm_bo_unreserve(mob->pt_bo); -	ttm_bo_unref(&mob->pt_bo); +	ttm_bo_put(mob->pt_bo); +	mob->pt_bo = NULL;  	return ret;  } @@ -580,8 +583,10 @@ static void vmw_mob_pt_setup(struct vmw_mob *mob,   */  void vmw_mob_destroy(struct vmw_mob *mob)  { -	if (mob->pt_bo) -		ttm_bo_unref(&mob->pt_bo); +	if (mob->pt_bo) { +		ttm_bo_put(mob->pt_bo); +		mob->pt_bo = NULL; +	}  	kfree(mob);  } @@ -698,8 +703,10 @@ int vmw_mob_bind(struct vmw_private *dev_priv,  out_no_cmd_space:  	vmw_fifo_resource_dec(dev_priv); -	if (pt_set_up) -		ttm_bo_unref(&mob->pt_bo); +	if (pt_set_up) { +		ttm_bo_put(mob->pt_bo); +		mob->pt_bo = NULL; +	}  	return -ENOMEM;  } | 
