Commit ed0d6a00 authored by Christian König's avatar Christian König
Browse files

dma-buf: use inline lock for the stub fence v2



Using the inline lock is now the recommended way for dma_fence
implementations.

So use this approach for the framework's internal fences as well.

Also saves about 4 bytes for the external spinlock.

v2: drop unnecessary changes

Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@igalia.com>
Reviewed-by: default avatarPhilipp Stanner <phasta@kernel.org>
Reviewed-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
Link: https://lore.kernel.org/r/20260219160822.1529-7-christian.koenig@amd.com
parent 3695d754
Loading
Loading
Loading
Loading
+2 −10
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ EXPORT_TRACEPOINT_SYMBOL(dma_fence_emit);
EXPORT_TRACEPOINT_SYMBOL(dma_fence_enable_signal);
EXPORT_TRACEPOINT_SYMBOL(dma_fence_signaled);

static DEFINE_SPINLOCK(dma_fence_stub_lock);
static struct dma_fence dma_fence_stub;

/*
@@ -123,12 +122,9 @@ static const struct dma_fence_ops dma_fence_stub_ops = {

static int __init dma_fence_init_stub(void)
{
	dma_fence_init(&dma_fence_stub, &dma_fence_stub_ops,
		       &dma_fence_stub_lock, 0, 0);

	dma_fence_init(&dma_fence_stub, &dma_fence_stub_ops, NULL, 0, 0);
	set_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT,
		&dma_fence_stub.flags);

	dma_fence_signal(&dma_fence_stub);
	return 0;
}
@@ -160,11 +156,7 @@ struct dma_fence *dma_fence_allocate_private_stub(ktime_t timestamp)
	if (fence == NULL)
		return NULL;

	dma_fence_init(fence,
		       &dma_fence_stub_ops,
		       &dma_fence_stub_lock,
		       0, 0);

	dma_fence_init(fence, &dma_fence_stub_ops, NULL, 0, 0);
	set_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT,
		&fence->flags);