drm/radeon: unlock the ring mutex while waiting for the next fence
authorChristian König <deathsimple@vodafone.de>
Wed, 2 May 2012 13:11:22 +0000 (15:11 +0200)
committerDave Airlie <airlied@redhat.com>
Thu, 3 May 2012 08:16:37 +0000 (09:16 +0100)
Fixing just another deadlock problem with gpu reset tests.

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon_ring.c

index 08e1578f55f83a4b960df0b6ef37fa822082b383..407d90aaa0c361a524eabac96cb62d51e40f1c5b 100644 (file)
@@ -346,7 +346,9 @@ int radeon_ring_alloc(struct radeon_device *rdev, struct radeon_ring *ring, unsi
                if (ndw < ring->ring_free_dw) {
                        break;
                }
+               mutex_unlock(&ring->mutex);
                r = radeon_fence_wait_next(rdev, radeon_ring_index(rdev, ring));
+               mutex_lock(&ring->mutex);
                if (r)
                        return r;
        }