Commit ecec875a authored by Tvrtko Ursulin's avatar Tvrtko Ursulin Committed by Tvrtko Ursulin
Browse files

dma-fence: Add helpers for accessing driver and timeline name



Add some helpers in order to enable preventing dma-fence users accessing
the implementation details directly and make the implementation itself use
them.

This will also enable later adding some asserts to a consolidated
location.

Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@igalia.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarTvrtko Ursulin <tursulin@ursulin.net>
Link: https://lore.kernel.org/r/20250515095004.28318-4-tvrtko.ursulin@igalia.com
parent bf33a000
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -538,8 +538,8 @@ void dma_fence_release(struct kref *kref)
	if (WARN(!list_empty(&fence->cb_list) &&
		 !test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags),
		 "Fence %s:%s:%llx:%llx released with pending signals!\n",
		 fence->ops->get_driver_name(fence),
		 fence->ops->get_timeline_name(fence),
		 dma_fence_driver_name(fence),
		 dma_fence_timeline_name(fence),
		 fence->context, fence->seqno)) {
		unsigned long flags;

@@ -983,8 +983,9 @@ EXPORT_SYMBOL(dma_fence_set_deadline);
void dma_fence_describe(struct dma_fence *fence, struct seq_file *seq)
{
	seq_printf(seq, "%s %s seq %llu %ssignalled\n",
		   fence->ops->get_driver_name(fence),
		   fence->ops->get_timeline_name(fence), fence->seqno,
		   dma_fence_driver_name(fence),
		   dma_fence_timeline_name(fence),
		   fence->seqno,
		   dma_fence_is_signaled(fence) ? "" : "un");
}
EXPORT_SYMBOL(dma_fence_describe);
+10 −0
Original line number Diff line number Diff line
@@ -378,6 +378,16 @@ bool dma_fence_remove_callback(struct dma_fence *fence,
			       struct dma_fence_cb *cb);
void dma_fence_enable_sw_signaling(struct dma_fence *fence);

static inline const char *dma_fence_driver_name(struct dma_fence *fence)
{
	return fence->ops->get_driver_name(fence);
}

static inline const char *dma_fence_timeline_name(struct dma_fence *fence)
{
	return fence->ops->get_timeline_name(fence);
}

/**
 * dma_fence_is_signaled_locked - Return an indication if the fence
 *                                is signaled yet.
+2 −2
Original line number Diff line number Diff line
@@ -16,8 +16,8 @@ DECLARE_EVENT_CLASS(dma_fence,
	TP_ARGS(fence),

	TP_STRUCT__entry(
		__string(driver, fence->ops->get_driver_name(fence))
		__string(timeline, fence->ops->get_timeline_name(fence))
		__string(driver, dma_fence_driver_name(fence))
		__string(timeline, dma_fence_timeline_name(fence))
		__field(unsigned int, context)
		__field(unsigned int, seqno)
	),