diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2017-01-04 09:12:21 -0500 |
---|---|---|
committer | Sumit Semwal <sumit.semwal@linaro.org> | 2017-01-09 09:36:58 -0500 |
commit | d6c99f4bf093a58d3ab47caaec74b81f18bc4e3f (patch) | |
tree | 246eff35230c79ce6560cf7fe23ce453a6ed62bb /drivers/dma-buf/sync_debug.c | |
parent | 83dd1376fd92f33bdeca9e83d479534a4e7f870b (diff) |
dma-fence: Wrap querying the fence->status
The fence->status is an optional field that is only valid once the fence
has been signaled. (Driver may fill the fence->status with an error code
prior to calling dma_fence_signal().) Given the restriction upon its
validity, wrap querying of the fence->status into a helper
dma_fence_get_status().
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
Link: http://patchwork.freedesktop.org/patch/msgid/20170104141222.6992-2-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/dma-buf/sync_debug.c')
-rw-r--r-- | drivers/dma-buf/sync_debug.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/dma-buf/sync_debug.c b/drivers/dma-buf/sync_debug.c index 48b20e34fb6d..c769dc653b34 100644 --- a/drivers/dma-buf/sync_debug.c +++ b/drivers/dma-buf/sync_debug.c | |||
@@ -62,30 +62,29 @@ void sync_file_debug_remove(struct sync_file *sync_file) | |||
62 | 62 | ||
63 | static const char *sync_status_str(int status) | 63 | static const char *sync_status_str(int status) |
64 | { | 64 | { |
65 | if (status == 0) | 65 | if (status < 0) |
66 | return "signaled"; | 66 | return "error"; |
67 | 67 | ||
68 | if (status > 0) | 68 | if (status > 0) |
69 | return "active"; | 69 | return "signaled"; |
70 | 70 | ||
71 | return "error"; | 71 | return "active"; |
72 | } | 72 | } |
73 | 73 | ||
74 | static void sync_print_fence(struct seq_file *s, | 74 | static void sync_print_fence(struct seq_file *s, |
75 | struct dma_fence *fence, bool show) | 75 | struct dma_fence *fence, bool show) |
76 | { | 76 | { |
77 | int status = 1; | ||
78 | struct sync_timeline *parent = dma_fence_parent(fence); | 77 | struct sync_timeline *parent = dma_fence_parent(fence); |
78 | int status; | ||
79 | 79 | ||
80 | if (dma_fence_is_signaled_locked(fence)) | 80 | status = dma_fence_get_status_locked(fence); |
81 | status = fence->status; | ||
82 | 81 | ||
83 | seq_printf(s, " %s%sfence %s", | 82 | seq_printf(s, " %s%sfence %s", |
84 | show ? parent->name : "", | 83 | show ? parent->name : "", |
85 | show ? "_" : "", | 84 | show ? "_" : "", |
86 | sync_status_str(status)); | 85 | sync_status_str(status)); |
87 | 86 | ||
88 | if (status <= 0) { | 87 | if (status) { |
89 | struct timespec64 ts64 = | 88 | struct timespec64 ts64 = |
90 | ktime_to_timespec64(fence->timestamp); | 89 | ktime_to_timespec64(fence->timestamp); |
91 | 90 | ||
@@ -136,7 +135,7 @@ static void sync_print_sync_file(struct seq_file *s, | |||
136 | int i; | 135 | int i; |
137 | 136 | ||
138 | seq_printf(s, "[%p] %s: %s\n", sync_file, sync_file->name, | 137 | seq_printf(s, "[%p] %s: %s\n", sync_file, sync_file->name, |
139 | sync_status_str(!dma_fence_is_signaled(sync_file->fence))); | 138 | sync_status_str(dma_fence_get_status(sync_file->fence))); |
140 | 139 | ||
141 | if (dma_fence_is_array(sync_file->fence)) { | 140 | if (dma_fence_is_array(sync_file->fence)) { |
142 | struct dma_fence_array *array = to_dma_fence_array(sync_file->fence); | 141 | struct dma_fence_array *array = to_dma_fence_array(sync_file->fence); |