From 1a9d163c4243c679e7a8d4c4abd787e40249485f Mon Sep 17 00:00:00 2001 From: Matthew Auld Date: Thu, 6 Apr 2023 17:26:24 +0100 Subject: [PATCH] drm/xe/sched_job: prefer dma_fence_is_later MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Cc: Thomas Hellström Cc: Matthew Brost Reviewed-by: Thomas Hellström Signed-off-by: Rodrigo Vivi --- drivers/gpu/drm/xe/xe_sched_job.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/xe/xe_sched_job.c b/drivers/gpu/drm/xe/xe_sched_job.c index d9add0370a98..795146dfd663 100644 --- a/drivers/gpu/drm/xe/xe_sched_job.c +++ b/drivers/gpu/drm/xe/xe_sched_job.c @@ -229,7 +229,9 @@ bool xe_sched_job_started(struct xe_sched_job *job) { 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) @@ -241,7 +243,8 @@ 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)