Module: Mesa Branch: master Commit: d817f2c69615cf37b78f484a25b7831ebe9dbe6f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d817f2c69615cf37b78f484a25b7831ebe9dbe6f
Author: Guido Günther <[email protected]> Date: Wed Jan 22 11:43:11 2020 +0100 etnaviv: drm: Don't miscalculate timeout The current code overflows (s * 1000000000) for s >= 5 but that is e.g. used in etna_bo_cpu_prep. Signed-off-by: Guido Günther <[email protected]> Reviewed-by: Jonathan Marek <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3509> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3509> --- src/etnaviv/drm/etnaviv_priv.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/etnaviv/drm/etnaviv_priv.h b/src/etnaviv/drm/etnaviv_priv.h index 2ab0e473ea9..8ceb6c3c431 100644 --- a/src/etnaviv/drm/etnaviv_priv.h +++ b/src/etnaviv/drm/etnaviv_priv.h @@ -204,10 +204,9 @@ struct etna_perfmon_signal static inline void get_abs_timeout(struct drm_etnaviv_timespec *tv, uint64_t ns) { struct timespec t; - uint32_t s = ns / 1000000000; clock_gettime(CLOCK_MONOTONIC, &t); - tv->tv_sec = t.tv_sec + s; - tv->tv_nsec = t.tv_nsec + ns - (s * 1000000000); + tv->tv_sec = t.tv_sec + ns / 1000000000; + tv->tv_nsec = t.tv_nsec + ns % 1000000000; } #if HAVE_VALGRIND _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
