Module Name: src
Committed By: riastradh
Date: Sun Dec 19 11:08:25 UTC 2021
Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fence.c
Log Message:
radeon: Fix missing unlocks in radeon fence.
To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.21 \
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.20 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.21
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.20 Sun Dec 19 11:08:17 2021
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c Sun Dec 19 11:08:25 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: radeon_fence.c,v 1.20 2021/12/19 11:08:17 riastradh Exp $ */
+/* $NetBSD: radeon_fence.c,v 1.21 2021/12/19 11:08:25 riastradh Exp $ */
/*
* Copyright 2009 Jerome Glisse.
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.20 2021/12/19 11:08:17 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.21 2021/12/19 11:08:25 riastradh Exp $");
#include <linux/atomic.h>
#include <linux/firmware.h>
@@ -326,6 +326,9 @@ static void radeon_fence_check_lockup(st
if (!down_read_trylock(&rdev->exclusive_lock)) {
/* just reschedule the check if a reset is going on */
radeon_fence_schedule_check(rdev, ring);
+#ifdef __NetBSD__
+ spin_unlock(&rdev->fence_lock);
+#endif
return;
}
@@ -524,6 +527,7 @@ bool radeon_fence_signaled(struct radeon
ret = dma_fence_signal_locked(&fence->base);
if (!ret)
DMA_FENCE_TRACE(&fence->base, "signaled from radeon_fence_signaled\n");
+ spin_unlock(&fence->rdev->fence_lock);
return true;
}
spin_unlock(&fence->rdev->fence_lock);