[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <44d30056-612f-4563-ad9f-92696c5a803a@ursulin.net>
Date: Tue, 25 Nov 2025 13:20:06 +0000
From: Tvrtko Ursulin <tursulin@...ulin.net>
To: Philipp Stanner <phasta@...nel.org>,
Sumit Semwal <sumit.semwal@...aro.org>, Gustavo Padovan
<gustavo@...ovan.org>, Christian König
<christian.koenig@....com>, Daniel Almeida <daniel.almeida@...labora.com>
Cc: linux-media@...r.kernel.org, dri-devel@...ts.freedesktop.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] dma-buf/dma-fence: Unify return codes for signalled
fences
On 25/11/2025 10:44, Philipp Stanner wrote:
> Almost all users of dma_fence_signal() ignore the return code which
> would indicate that the fence was already signaled. The same return code
> by dma_fence_add_callback() cannot be ignored, however, because it's
> needed to detect races.
>
> For an already signaled fence, dma_fence_signal() returns -EINVAL,
> whereas dma_fence_add_callback() returns -ENOENT.
>
> Unify the error codes by having dma_fence_signal() return -ENOENT, too.
>
> Signed-off-by: Philipp Stanner <phasta@...nel.org>
> ---
> 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 3a48896ded62..09d97624e647 100644
> --- a/drivers/dma-buf/dma-fence.c
> +++ b/drivers/dma-buf/dma-fence.c
> @@ -373,7 +373,7 @@ int dma_fence_signal_timestamp_locked(struct dma_fence *fence,
> lockdep_assert_held(fence->lock);
>
> if (unlikely(__dma_fence_is_signaled(fence)))
> - return -EINVAL;
> + return -ENOENT;
>
> /* Stash the cb_list before replacing it with the timestamp */
> list_replace(&fence->cb_list, &cb_list);
Story checks out AFAICT - only two callers fetch the error, xe and kfd,
and neither does anything with it. So I'd say it makes sense to unify
the errno.
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@...lia.com>
Regards,
Tvrtko
P.S. Just not sure of the 1/2 on which this one ends depending on. I
*think* I suggested the helper in the context of some discussion long
long time ago but what it was? And what about all the drivers which look
at the signaled bit directly?
Powered by blists - more mailing lists