Module Name: src Committed By: riastradh Date: Sun Dec 19 11:30:57 UTC 2021
Modified Files: src/sys/external/bsd/drm2/dist/drm/i915/gem: i915_gem_fence.c Log Message: drm/i915: Need a separate spin lock for i915 stub_fence. Nothing built-in to the dma fence wait queue that we can abuse here. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_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/i915/gem/i915_gem_fence.c diff -u src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_fence.c:1.2 src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_fence.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_fence.c:1.2 Sat Dec 18 23:45:30 2021 +++ src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_fence.c Sun Dec 19 11:30:56 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_gem_fence.c,v 1.2 2021/12/18 23:45:30 riastradh Exp $ */ +/* $NetBSD: i915_gem_fence.c,v 1.3 2021/12/19 11:30:56 riastradh Exp $ */ /* * SPDX-License-Identifier: MIT @@ -7,13 +7,14 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: i915_gem_fence.c,v 1.2 2021/12/18 23:45:30 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_gem_fence.c,v 1.3 2021/12/19 11:30:56 riastradh Exp $"); #include "i915_drv.h" #include "i915_gem_object.h" struct stub_fence { struct dma_fence dma; + spinlock_t lock; struct i915_sw_fence chain; }; @@ -53,6 +54,7 @@ static void stub_release(struct dma_fenc BUILD_BUG_ON(offsetof(typeof(*stub), dma)); dma_fence_free(&stub->dma); + spin_lock_destroy(&stub->lock); } static const struct dma_fence_ops stub_fence_ops = { @@ -73,7 +75,8 @@ i915_gem_object_lock_fence(struct drm_i9 return NULL; i915_sw_fence_init(&stub->chain, stub_notify); - dma_fence_init(&stub->dma, &stub_fence_ops, &stub->chain.wait.lock, + spin_lock_init(&stub->lock); + dma_fence_init(&stub->dma, &stub_fence_ops, &stub->lock, 0, 0); if (i915_sw_fence_await_reservation(&stub->chain,