On 18/06/2026 14:46, Christian König wrote:
On 6/18/26 14:00, André Draszik wrote:
dma_fence_timeline_name() is a wrapper around
dma_fence_ops::get_timeline_name(). Since the blamed commit below, it
calls an incorrect callback.
Update it to restore functionality by calling the intended callback.
Fixes: 62918542b7bf ("dma-fence: Fix sparse warnings due __rcu annotations")
Signed-off-by: André Draszik <[email protected]>
I'm like 99% sure we had that already fixed weeks ago, but somehow it looks
like that was never merged to drm-misc-fixes.
Anyway Reviewed-by: Christian König <[email protected]>
I was also perplexed and took me some digging to realise what had happened.
The copy-and-paste bug was indeed originally fixed in:
commit 033559473dd3b55558b535aa37b8848c207b5cbb
Author: Akash Goel <[email protected]>
AuthorDate: Tue Oct 21 17:09:51 2025 +0100
Commit: Tvrtko Ursulin <[email protected]>
CommitDate: Fri Oct 24 16:56:37 2025 +0100
dma-fence: Fix safe access wrapper to call timeline name method
But waaay before that I sent a fix for something else which touched
those lines not noticing the copy-and-paste, fixing a different issue.
That one however was not merged until earlier this year:
commit 62918542b7bf08860a60ebbde7654486e0ac0776
Author: Tvrtko Ursulin <[email protected]>
AuthorDate: Mon Jun 16 16:59:52 2025 +0100
Commit: Christian König <[email protected]>
CommitDate: Mon Feb 9 14:05:20 2026 +0100
dma-fence: Fix sparse warnings due __rcu annotations
Notice the authored vs commited dates.
I guess it was a silent conflict which overwrote the earlier fix and
restore the copy-and-paste bug.
Regards,
Tvrtko
---
drivers/dma-buf/dma-fence.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/dma-buf/dma-fence.c b/drivers/dma-buf/dma-fence.c
index b3bfa6943a8e..5292d714419b 100644
--- a/drivers/dma-buf/dma-fence.c
+++ b/drivers/dma-buf/dma-fence.c
@@ -1202,7 +1202,7 @@ const char __rcu *dma_fence_timeline_name(struct
dma_fence *fence)
/* RCU protection is required for safe access to returned string */
ops = rcu_dereference(fence->ops);
if (!dma_fence_test_signaled_flag(fence))
- return (const char __rcu *)ops->get_driver_name(fence);
+ return (const char __rcu *)ops->get_timeline_name(fence);
else
return (const char __rcu *)"signaled-timeline";
}
---
base-commit: e2cae00c05d196491c318196792297f2dfbaa02c
change-id: 20260618-linux-drm_crtc_fix-267655a1c89f
Best regards,
--
André Draszik <[email protected]>