aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon
diff options
context:
space:
mode:
authorChristian König <deathsimple@vodafone.de>2012-09-11 10:10:02 -0400
committerAlex Deucher <alexander.deucher@amd.com>2012-09-20 13:10:42 -0400
commitd59f70216b7166f03fa732964deafc6453d62eb6 (patch)
tree84d7f7d80a85de5a45e7bc3bf91a3dc850d8f1ee /drivers/gpu/drm/radeon
parentd63dfed5e9aa5fbea25a471300ee1b33bdc710d0 (diff)
drm/radeon: fix gem_close_object handling
Make the reserve non interruptible. Signed-off-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon')
-rw-r--r--drivers/gpu/drm/radeon/radeon_gem.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c
index 6cac5cca3d81..cfad667ce785 100644
--- a/drivers/gpu/drm/radeon/radeon_gem.c
+++ b/drivers/gpu/drm/radeon/radeon_gem.c
@@ -134,13 +134,16 @@ void radeon_gem_object_close(struct drm_gem_object *obj,
134 struct radeon_device *rdev = rbo->rdev; 134 struct radeon_device *rdev = rbo->rdev;
135 struct radeon_fpriv *fpriv = file_priv->driver_priv; 135 struct radeon_fpriv *fpriv = file_priv->driver_priv;
136 struct radeon_vm *vm = &fpriv->vm; 136 struct radeon_vm *vm = &fpriv->vm;
137 int r;
137 138
138 if (rdev->family < CHIP_CAYMAN) { 139 if (rdev->family < CHIP_CAYMAN) {
139 return; 140 return;
140 } 141 }
141 142
142 if (radeon_bo_reserve(rbo, false)) { 143 r = radeon_bo_reserve(rbo, true);
143 dev_err(rdev->dev, "leaking bo va because we fail to reserve bo\n"); 144 if (r) {
145 dev_err(rdev->dev, "leaking bo va because "
146 "we fail to reserve bo (%d)\n", r);
144 return; 147 return;
145 } 148 }
146 radeon_vm_bo_rmv(rdev, vm, rbo); 149 radeon_vm_bo_rmv(rdev, vm, rbo);