Module Name: src Committed By: riastradh Date: Wed Aug 6 22:12:51 UTC 2014
Modified Files: src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fence.c Log Message: radeon_fence_signaled needs to take the fence lock. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.5 --- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.4 Wed Aug 6 12:47:13 2014 +++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c Wed Aug 6 22:12:51 2014 @@ -265,13 +265,17 @@ bool radeon_fence_signaled(struct radeon if (!fence) { return true; } + spin_lock(&fence->rdev->fence_lock); if (fence->seq == RADEON_FENCE_SIGNALED_SEQ) { + spin_unlock(&fence->rdev->fence_lock); return true; } if (radeon_fence_seq_signaled(fence->rdev, fence->seq, fence->ring)) { fence->seq = RADEON_FENCE_SIGNALED_SEQ; + spin_unlock(&fence->rdev->fence_lock); return true; } + spin_unlock(&fence->rdev->fence_lock); return false; }