Doesn't look like we are accounting for seqno wrap. Just use
__dma_fence_is_later() like we already do for xe_hw_fence_signaled().
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
{
struct xe_lrc *lrc = job->engine->lrc;
- return xe_lrc_start_seqno(lrc) >= xe_sched_job_seqno(job);
+ return !__dma_fence_is_later(xe_sched_job_seqno(job),
+ xe_lrc_start_seqno(lrc),
+ job->fence->ops);
}
bool xe_sched_job_completed(struct xe_sched_job *job)
* parallel handshake is done.
*/
- return xe_lrc_seqno(lrc) >= xe_sched_job_seqno(job);
+ return !__dma_fence_is_later(xe_sched_job_seqno(job), xe_lrc_seqno(lrc),
+ job->fence->ops);
}
void xe_sched_job_arm(struct xe_sched_job *job)