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);