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 <[email protected]> --- 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); -- 2.49.0
