diff mbox

[2/2] dma-buf/fence: don't wait when specified timeout is zero

Message ID 1421836549-4539-2-git-send-email-Jammy.Zhou@amd.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jammy Zhou Jan. 21, 2015, 10:35 a.m. UTC
When specified timeout is zero for fence_wait_timeout, just check if the fence
is signaled or not without wait.

Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
---
 drivers/dma-buf/fence.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Maarten Lankhorst Jan. 21, 2015, 10:31 a.m. UTC | #1
Op 21-01-15 om 11:35 schreef Jammy Zhou:
> When specified timeout is zero for fence_wait_timeout, just check if the fence
> is signaled or not without wait.
>
> Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
>
Reviewed-By: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Christian König Jan. 21, 2015, 11:09 a.m. UTC | #2
Am 21.01.2015 um 11:35 schrieb Jammy Zhou:
> When specified timeout is zero for fence_wait_timeout, just check if the fence
> is signaled or not without wait.
>
> Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>

Reviewed-by: Christian König <christian.koenig@amd.com>

> ---
>   drivers/dma-buf/fence.c | 3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/drivers/dma-buf/fence.c b/drivers/dma-buf/fence.c
> index e554111..50ef8bd 100644
> --- a/drivers/dma-buf/fence.c
> +++ b/drivers/dma-buf/fence.c
> @@ -159,6 +159,9 @@ fence_wait_timeout(struct fence *fence, bool intr, signed long timeout)
>   	if (WARN_ON(timeout < 0))
>   		return -EINVAL;
>   
> +	if (timeout == 0)
> +		return fence_is_signaled(fence);
> +
>   	trace_fence_wait_start(fence);
>   	ret = fence->ops->wait(fence, intr, timeout);
>   	trace_fence_wait_end(fence);
diff mbox

Patch

diff --git a/drivers/dma-buf/fence.c b/drivers/dma-buf/fence.c
index e554111..50ef8bd 100644
--- a/drivers/dma-buf/fence.c
+++ b/drivers/dma-buf/fence.c
@@ -159,6 +159,9 @@  fence_wait_timeout(struct fence *fence, bool intr, signed long timeout)
 	if (WARN_ON(timeout < 0))
 		return -EINVAL;
 
+	if (timeout == 0)
+		return fence_is_signaled(fence);
+
 	trace_fence_wait_start(fence);
 	ret = fence->ops->wait(fence, intr, timeout);
 	trace_fence_wait_end(fence);