From: Tan En De <ende.tan@xxxxxxxxxxxxxxxx> Include tv_sec in addition to tv_nsec in __clock_gettime(). If the value of variable 'a' wraps around, it may cause 'delta' to be negative, while 'delta' is defined with u64 type. Signed-off-by: Tan En De <ende.tan@xxxxxxxxxxxxxxxx> --- src/queuelat/queuelat.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/queuelat/queuelat.c b/src/queuelat/queuelat.c index c549cd8..c057389 100644 --- a/src/queuelat/queuelat.c +++ b/src/queuelat/queuelat.c @@ -292,7 +292,8 @@ static inline unsigned long long __clock_gettime(void) if (ret < 0) return 0; - return now.tv_nsec; + // Combine seconds and nanoseconds into a single value in nanoseconds + return (unsigned long long)now.tv_sec * 1000000000ULL + now.tv_nsec; } #define gettick(val) do { (val) = __clock_gettime(); } while (0) -- 2.34.1