int kgsl_sync_fence_async_cancel(struct kgsl_sync_fence_waiter *kwaiter) { if (kwaiter == NULL) return 0; if (sync_fence_cancel_async(kwaiter->fence, (struct sync_fence_waiter *) kwaiter) == 0) { sync_fence_put(kwaiter->fence); kfree(kwaiter); return 1; } return 0; }
static void kbase_fence_cancel_wait(kbase_jd_atom *katom) { if (sync_fence_cancel_async(katom->fence, &katom->sync_waiter) != 0) { /* The wait wasn't cancelled - leave the cleanup for kbase_fence_wait_callback */ return; } /* Wait was cancelled - zap the atoms */ katom->event_code = BASE_JD_EVENT_JOB_CANCELLED; kbase_finish_soft_job(katom); if (jd_done_nolock(katom)) { kbasep_js_try_schedule_head_ctx( katom->kctx->kbdev ); } }