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: Raag Jadav <raag.jadav@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://lore.kernel.org/r/20250513-time-wrap-v1-1-fba9a69a65c8@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
 
         */
        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;
+       diff = ctx_timestamp - ctx_job_timestamp;
 
        /*
         * Ensure timeout is within 5% to account for an GuC scheduling latency