]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/dma-buf/sync_file.c
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma
[linux.git] / drivers / dma-buf / sync_file.c
index 545e2c5c4815d411d485c1f63a3cb88992036d37..d7e219d2669daf01c935bd18c0836cb88a34e075 100644 (file)
@@ -391,7 +391,13 @@ static void sync_fill_fence_info(struct dma_fence *fence,
                sizeof(info->driver_name));
 
        info->status = dma_fence_get_status(fence);
-       info->timestamp_ns = ktime_to_ns(fence->timestamp);
+       while (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags) &&
+              !test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT, &fence->flags))
+               cpu_relax();
+       info->timestamp_ns =
+               test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT, &fence->flags) ?
+               ktime_to_ns(fence->timestamp) :
+               ktime_set(0, 0);
 }
 
 static long sync_file_ioctl_fence_info(struct sync_file *sync_file,