Commit eaa28706 authored by Lucas De Marchi's avatar Lucas De Marchi
Browse files

drm/xe/guc_submit: Simplify and fix diff calculation



With a u32 type, there's no need to check which one is greater: the
current is always the latest and if it's less than the previous, it's
because it wrapped: just do the unsigned calculation that will lead to
the same result, or better the correct one. It fixes an off-by-one in
the wrapped calculation, however that doesn't really matter for the
timeout calculation.

Reviewed-by: default avatarRaag Jadav <raag.jadav@intel.com>
Reviewed-by: default avatarUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: default avatarMatthew Brost <matthew.brost@intel.com>
Link: https://lore.kernel.org/r/20250513-time-wrap-v1-1-fba9a69a65c8@intel.com


Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
parent 3dbab383
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -976,9 +976,6 @@ static bool check_timeout(struct xe_exec_queue *q, struct xe_sched_job *job)
	 */
	xe_gt_assert(gt, timeout_ms < 100 * MSEC_PER_SEC);

	if (ctx_timestamp < ctx_job_timestamp)
		diff = ctx_timestamp + U32_MAX - ctx_job_timestamp;
	else
	diff = ctx_timestamp - ctx_job_timestamp;

	/*