diff mbox

[6/8] drm/radeon: fix gem_close_object handling

Message ID 1347372604-26557-6-git-send-email-deathsimple@vodafone.de (mailing list archive)
State New, archived
Headers show

Commit Message

Christian König Sept. 11, 2012, 2:10 p.m. UTC
Make the reserve non interruptible.

Signed-off-by: Christian König <deathsimple@vodafone.de>
---
 drivers/gpu/drm/radeon/radeon_gem.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Jerome Glisse Sept. 11, 2012, 4:14 p.m. UTC | #1
On Tue, Sep 11, 2012 at 10:10 AM, Christian König
<deathsimple@vodafone.de> wrote:
> Make the reserve non interruptible.
>
> Signed-off-by: Christian König <deathsimple@vodafone.de>

Reviewed-by: Jerome Glisse

> ---
>  drivers/gpu/drm/radeon/radeon_gem.c |    7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c
> index 6cac5cc..cfad667 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,
>         struct radeon_device *rdev = rbo->rdev;
>         struct radeon_fpriv *fpriv = file_priv->driver_priv;
>         struct radeon_vm *vm = &fpriv->vm;
> +       int r;
>
>         if (rdev->family < CHIP_CAYMAN) {
>                 return;
>         }
>
> -       if (radeon_bo_reserve(rbo, false)) {
> -               dev_err(rdev->dev, "leaking bo va because we fail to reserve bo\n");
> +       r = radeon_bo_reserve(rbo, true);
> +       if (r) {
> +               dev_err(rdev->dev, "leaking bo va because "
> +                       "we fail to reserve bo (%d)\n", r);
>                 return;
>         }
>         radeon_vm_bo_rmv(rdev, vm, rbo);
> --
> 1.7.9.5
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c
index 6cac5cc..cfad667 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,
 	struct radeon_device *rdev = rbo->rdev;
 	struct radeon_fpriv *fpriv = file_priv->driver_priv;
 	struct radeon_vm *vm = &fpriv->vm;
+	int r;
 
 	if (rdev->family < CHIP_CAYMAN) {
 		return;
 	}
 
-	if (radeon_bo_reserve(rbo, false)) {
-		dev_err(rdev->dev, "leaking bo va because we fail to reserve bo\n");
+	r = radeon_bo_reserve(rbo, true);
+	if (r) {
+		dev_err(rdev->dev, "leaking bo va because "
+			"we fail to reserve bo (%d)\n", r);
 		return;
 	}
 	radeon_vm_bo_rmv(rdev, vm, rbo);