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:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user