From: Matthew Auld Date: Thu, 6 Apr 2023 16:26:24 +0000 (+0100) Subject: drm/xe/sched_job: prefer dma_fence_is_later X-Git-Tag: v6.8-rc1~111^2~7^2~773 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1a9d163c4243c679e7a8d4c4abd787e40249485f;p=thirdparty%2Fkernel%2Flinux.git drm/xe/sched_job: prefer dma_fence_is_later 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 --- diff --git a/drivers/gpu/drm/xe/xe_sched_job.c b/drivers/gpu/drm/xe/xe_sched_job.c index d9add0370a984..795146dfd663c 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)