MALI: Fix bifrost driver to handle wrapping of fence->status

Change dma-fence: Wrap querying the fence->status
       commit d6c99f4bf093a58d3ab47caaec74b81f18bc4e3f upstream.
    removes status field from fence struct.

Change-Id: I622e903b543c30ac9939e1e212aca28f3ccaa71c
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
This commit is contained in:
Dmitry Shmidt
2017-12-12 14:59:51 -08:00
parent b6c70ea077
commit 4e6c8e457a
2 changed files with 4 additions and 4 deletions
+1 -1
View File
@@ -134,7 +134,7 @@ static inline bool kbase_fence_out_is_ours(struct kbase_jd_atom *katom)
static inline int kbase_fence_out_signal(struct kbase_jd_atom *katom,
int status)
{
katom->dma_fence.fence->status = status;
katom->dma_fence.fence->error = status;
return dma_fence_signal(katom->dma_fence.fence);
}
+3 -3
View File
@@ -161,7 +161,7 @@ static void kbase_fence_wait_callback(struct dma_fence *fence,
struct kbase_context *kctx = katom->kctx;
/* Cancel atom if fence is erroneous */
if (dma_fence_is_signaled(kcb->fence) && kcb->fence->status < 0)
if (dma_fence_is_signaled(kcb->fence) && kcb->fence->error < 0)
katom->event_code = BASE_JD_EVENT_JOB_CANCELLED;
if (kbase_fence_dep_count_dec_and_test(katom)) {
@@ -273,8 +273,8 @@ static void kbase_sync_fence_info_get(struct dma_fence *fence,
* 1 : signaled
*/
if (dma_fence_is_signaled(fence)) {
if (fence->status < 0)
info->status = fence->status; /* signaled with error */
if (fence->error < 0)
info->status = fence->error; /* signaled with error */
else
info->status = 1; /* signaled with success */
} else {