]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
dma-fence: Add helpers for accessing driver and timeline name
authorTvrtko Ursulin <tvrtko.ursulin@igalia.com>
Thu, 15 May 2025 09:49:58 +0000 (10:49 +0100)
committerTvrtko Ursulin <tursulin@ursulin.net>
Tue, 3 Jun 2025 16:38:22 +0000 (17:38 +0100)
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: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Tvrtko Ursulin <tursulin@ursulin.net>
Link: https://lore.kernel.org/r/20250515095004.28318-4-tvrtko.ursulin@igalia.com
drivers/dma-buf/dma-fence.c
include/linux/dma-fence.h
include/trace/events/dma_fence.h

index 705b5978773194c18d7321a961b590c798ba62d6..74f9e4b665e3b0e3cd789d56db0d18ef4b61efe1 100644 (file)
@@ -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);
index 926c01b5b29d39516d8712d8835a5c1f1562ee8a..10a849cb2d3ff24460d3816ba4e49d5ffe53a7ff 100644 (file)
@@ -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.
index a4de3df8500bc54bf787f7d38b3fa51ffe7426a6..84c83074ee819ab7c704b617d8be5b451581cf10 100644 (file)
@@ -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)
        ),