Skip to contentSkip to conversation

drm/radeon: drm/radeon: add missing radeon_semaphore_free to error path

PATCH In review Maarten Lankhorst 3 participants 3 messages Apr 24, 2014 – Apr 28, 2014

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drm/radeon: drm/radeon: add missing radeon_semaphore_free to error path

It would appear this bug has been copy/pasted many times without being noticed.

---

drivers/gpu/drm/radeon/cik.c +1 -0
index f58a07c26b86..0e071571a4c6 100644
@@ -3670,6 +3670,7 @@ int cik_copy_cpdma(struct radeon_device *rdev,
 	r = radeon_fence_emit(rdev, fence, ring->idx);
 	if (r) {
 		radeon_ring_unlock_undo(rdev, ring);
+		radeon_semaphore_free(rdev, &sem, NULL);
 		return r;
 	}
 
drivers/gpu/drm/radeon/cik_sdma.c +1 -0
index 94626ea90fa5..06ca19cf5446 100644
@@ -564,6 +564,7 @@ int cik_copy_dma(struct radeon_device *rdev,
 	r = radeon_fence_emit(rdev, fence, ring->idx);
 	if (r) {
 		radeon_ring_unlock_undo(rdev, ring);
+		radeon_semaphore_free(rdev, &sem, NULL);
 		return r;
 	}
 
drivers/gpu/drm/radeon/evergreen_dma.c +1 -0
index a37b54436382..e6b8c752e42c 100644
@@ -151,6 +151,7 @@ int evergreen_copy_dma(struct radeon_device *rdev,
 	r = radeon_fence_emit(rdev, fence, ring->idx);
 	if (r) {
 		radeon_ring_unlock_undo(rdev, ring);
+		radeon_semaphore_free(rdev, &sem, NULL);
 		return r;
 	}
 
drivers/gpu/drm/radeon/r600.c +1 -0
index 7a4ee41c7cab..fc9568547a97 100644
@@ -2843,6 +2843,7 @@ int r600_copy_cpdma(struct radeon_device *rdev,
 	r = radeon_fence_emit(rdev, fence, ring->idx);
 	if (r) {
 		radeon_ring_unlock_undo(rdev, ring);
+		radeon_semaphore_free(rdev, &sem, NULL);
 		return r;
 	}
 
drivers/gpu/drm/radeon/r600_dma.c +1 -0
index b2d4c91e6272..2590e2289303 100644
@@ -493,6 +493,7 @@ int r600_copy_dma(struct radeon_device *rdev,
 	r = radeon_fence_emit(rdev, fence, ring->idx);
 	if (r) {
 		radeon_ring_unlock_undo(rdev, ring);
+		radeon_semaphore_free(rdev, &sem, NULL);
 		return r;
 	}
 
drivers/gpu/drm/radeon/rv770_dma.c +1 -0
index aca8cbe8a335..bbf2e076ee45 100644
@@ -86,6 +86,7 @@ int rv770_copy_dma(struct radeon_device *rdev,
 	r = radeon_fence_emit(rdev, fence, ring->idx);
 	if (r) {
 		radeon_ring_unlock_undo(rdev, ring);
+		radeon_semaphore_free(rdev, &sem, NULL);
 		return r;
 	}
 
drivers/gpu/drm/radeon/si_dma.c +1 -0
index 59be2cfcbb47..e61ab2d7da41 100644
@@ -215,6 +215,7 @@ int si_copy_dma(struct radeon_device *rdev,
 	r = radeon_fence_emit(rdev, fence, ring->idx);
 	if (r) {
 		radeon_ring_unlock_undo(rdev, ring);
+		radeon_semaphore_free(rdev, &sem, NULL);
 		return r;
 	}
#1 lore raw

Tested-by for RV730 (r600.c).

Am 24.04.2014 13:29, schrieb Maarten Lankhorst:

Quoted 93 lines

It would appear this bug has been copy/pasted many times without being noticed.

---

drivers/gpu/drm/radeon/cik.c +1 -0
index f58a07c26b86..0e071571a4c6 100644
@@ -3670,6 +3670,7 @@ int cik_copy_cpdma(struct radeon_device *rdev,
 	r = radeon_fence_emit(rdev, fence, ring->idx);
 	if (r) {
 		radeon_ring_unlock_undo(rdev, ring);
+		radeon_semaphore_free(rdev, &sem, NULL);
 		return r;
 	}
 diff --git a/drivers/gpu/drm/radeon/cik_sdma.c

b/drivers/gpu/drm/radeon/cik_sdma.c
index 94626ea90fa5..06ca19cf5446 100644

drivers/gpu/drm/radeon/cik_sdma.c +1 -0
@@ -564,6 +564,7 @@ int cik_copy_dma(struct radeon_device *rdev,
 	r = radeon_fence_emit(rdev, fence, ring->idx);
 	if (r) {
 		radeon_ring_unlock_undo(rdev, ring);
+		radeon_semaphore_free(rdev, &sem, NULL);
 		return r;
 	}
 diff --git a/drivers/gpu/drm/radeon/evergreen_dma.c

b/drivers/gpu/drm/radeon/evergreen_dma.c
index a37b54436382..e6b8c752e42c 100644

drivers/gpu/drm/radeon/evergreen_dma.c +1 -0
@@ -151,6 +151,7 @@ int evergreen_copy_dma(struct radeon_device *rdev,
 	r = radeon_fence_emit(rdev, fence, ring->idx);
 	if (r) {
 		radeon_ring_unlock_undo(rdev, ring);
+		radeon_semaphore_free(rdev, &sem, NULL);
 		return r;
 	}
 diff --git a/drivers/gpu/drm/radeon/r600.c 

b/drivers/gpu/drm/radeon/r600.c
index 7a4ee41c7cab..fc9568547a97 100644

drivers/gpu/drm/radeon/r600.c +1 -0
@@ -2843,6 +2843,7 @@ int r600_copy_cpdma(struct radeon_device *rdev,
 	r = radeon_fence_emit(rdev, fence, ring->idx);
 	if (r) {
 		radeon_ring_unlock_undo(rdev, ring);
+		radeon_semaphore_free(rdev, &sem, NULL);
 		return r;
 	}
 diff --git a/drivers/gpu/drm/radeon/r600_dma.c

b/drivers/gpu/drm/radeon/r600_dma.c
index b2d4c91e6272..2590e2289303 100644

drivers/gpu/drm/radeon/r600_dma.c +1 -0
@@ -493,6 +493,7 @@ int r600_copy_dma(struct radeon_device *rdev,
 	r = radeon_fence_emit(rdev, fence, ring->idx);
 	if (r) {
 		radeon_ring_unlock_undo(rdev, ring);
+		radeon_semaphore_free(rdev, &sem, NULL);
 		return r;
 	}
 diff --git a/drivers/gpu/drm/radeon/rv770_dma.c

b/drivers/gpu/drm/radeon/rv770_dma.c
index aca8cbe8a335..bbf2e076ee45 100644

drivers/gpu/drm/radeon/rv770_dma.c +1 -0
@@ -86,6 +86,7 @@ int rv770_copy_dma(struct radeon_device *rdev,
 	r = radeon_fence_emit(rdev, fence, ring->idx);
 	if (r) {
 		radeon_ring_unlock_undo(rdev, ring);
+		radeon_semaphore_free(rdev, &sem, NULL);
 		return r;
 	}
 diff --git a/drivers/gpu/drm/radeon/si_dma.c 

b/drivers/gpu/drm/radeon/si_dma.c
index 59be2cfcbb47..e61ab2d7da41 100644

drivers/gpu/drm/radeon/si_dma.c +1 -0
@@ -215,6 +215,7 @@ int si_copy_dma(struct radeon_device *rdev,
 	r = radeon_fence_emit(rdev, fence, ring->idx);
 	if (r) {
 		radeon_ring_unlock_undo(rdev, ring);
+		radeon_semaphore_free(rdev, &sem, NULL);
 		return r;
 	}
 

_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Reviewed-by on v1 1/1
#2 lore raw
In reply to Maarten Lankhorst
Quoted 4 lines · Maarten Lankhorst

It would appear this bug has been copy/pasted many times without being noticed.

Quoted 88 lines

---

drivers/gpu/drm/radeon/cik.c +1 -0
index f58a07c26b86..0e071571a4c6 100644
@@ -3670,6 +3670,7 @@ int cik_copy_cpdma(struct radeon_device *rdev,
        r = radeon_fence_emit(rdev, fence, ring->idx);
        if (r) {
                radeon_ring_unlock_undo(rdev, ring);
+               radeon_semaphore_free(rdev, &sem, NULL);
                return r;
        }
 diff --git a/drivers/gpu/drm/radeon/cik_sdma.c

b/drivers/gpu/drm/radeon/cik_sdma.c
index 94626ea90fa5..06ca19cf5446 100644

drivers/gpu/drm/radeon/cik_sdma.c +1 -0
@@ -564,6 +564,7 @@ int cik_copy_dma(struct radeon_device *rdev,
        r = radeon_fence_emit(rdev, fence, ring->idx);
        if (r) {
                radeon_ring_unlock_undo(rdev, ring);
+               radeon_semaphore_free(rdev, &sem, NULL);
                return r;
        }
 diff --git a/drivers/gpu/drm/radeon/evergreen_dma.c

b/drivers/gpu/drm/radeon/evergreen_dma.c
index a37b54436382..e6b8c752e42c 100644

drivers/gpu/drm/radeon/evergreen_dma.c +1 -0
@@ -151,6 +151,7 @@ int evergreen_copy_dma(struct radeon_device *rdev,
        r = radeon_fence_emit(rdev, fence, ring->idx);
        if (r) {
                radeon_ring_unlock_undo(rdev, ring);
+               radeon_semaphore_free(rdev, &sem, NULL);
                return r;
        }
 diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c

index 7a4ee41c7cab..fc9568547a97 100644

drivers/gpu/drm/radeon/r600.c +1 -0
@@ -2843,6 +2843,7 @@ int r600_copy_cpdma(struct radeon_device *rdev,
        r = radeon_fence_emit(rdev, fence, ring->idx);
        if (r) {
                radeon_ring_unlock_undo(rdev, ring);
+               radeon_semaphore_free(rdev, &sem, NULL);
                return r;
        }
 diff --git a/drivers/gpu/drm/radeon/r600_dma.c

b/drivers/gpu/drm/radeon/r600_dma.c
index b2d4c91e6272..2590e2289303 100644

drivers/gpu/drm/radeon/r600_dma.c +1 -0
@@ -493,6 +493,7 @@ int r600_copy_dma(struct radeon_device *rdev,
        r = radeon_fence_emit(rdev, fence, ring->idx);
        if (r) {
                radeon_ring_unlock_undo(rdev, ring);
+               radeon_semaphore_free(rdev, &sem, NULL);
                return r;
        }
 diff --git a/drivers/gpu/drm/radeon/rv770_dma.c

b/drivers/gpu/drm/radeon/rv770_dma.c
index aca8cbe8a335..bbf2e076ee45 100644

drivers/gpu/drm/radeon/rv770_dma.c +1 -0
@@ -86,6 +86,7 @@ int rv770_copy_dma(struct radeon_device *rdev,
        r = radeon_fence_emit(rdev, fence, ring->idx);
        if (r) {
                radeon_ring_unlock_undo(rdev, ring);
+               radeon_semaphore_free(rdev, &sem, NULL);
                return r;
        }
 diff --git a/drivers/gpu/drm/radeon/si_dma.c

b/drivers/gpu/drm/radeon/si_dma.c
index 59be2cfcbb47..e61ab2d7da41 100644

drivers/gpu/drm/radeon/si_dma.c +1 -0
@@ -215,6 +215,7 @@ int si_copy_dma(struct radeon_device *rdev,
        r = radeon_fence_emit(rdev, fence, ring->idx);
        if (r) {
                radeon_ring_unlock_undo(rdev, ring);
+               radeon_semaphore_free(rdev, &sem, NULL);
                return r;
        }
 

_______________________________________________
dri-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/dri-devel