From 4e6c8e457a60615e607559b6fc9c352e7621600f Mon Sep 17 00:00:00 2001 From: Dmitry Shmidt Date: Tue, 12 Dec 2017 14:59:51 -0800 Subject: [PATCH] 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 --- drivers/gpu/arm_gpu/mali_kbase_fence.h | 2 +- drivers/gpu/arm_gpu/mali_kbase_sync_file.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/arm_gpu/mali_kbase_fence.h b/drivers/gpu/arm_gpu/mali_kbase_fence.h index 8d392996f56e..070dd12e1b7a 100644 --- a/drivers/gpu/arm_gpu/mali_kbase_fence.h +++ b/drivers/gpu/arm_gpu/mali_kbase_fence.h @@ -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); } diff --git a/drivers/gpu/arm_gpu/mali_kbase_sync_file.c b/drivers/gpu/arm_gpu/mali_kbase_sync_file.c index 4e1621ca3eea..45f9489a9e80 100644 --- a/drivers/gpu/arm_gpu/mali_kbase_sync_file.c +++ b/drivers/gpu/arm_gpu/mali_kbase_sync_file.c @@ -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 {