From: Krzysztof Kanas <kka...@marvell.com> On rare situation test_link_bonding test case fail due to timespec tv_nsec overflow, which causes pthread_cond_timedwait to return EINVAL and test to fail.
Fixes: 76d29903f5f5 ("bond: support link status interrupt") Cc: declan.dohe...@intel.com Signed-off-by: Krzysztof Kanas <kka...@marvell.com> --- app/test/test_link_bonding.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/test/test_link_bonding.c b/app/test/test_link_bonding.c index 938fafca3a95..1cfa77278376 100644 --- a/app/test/test_link_bonding.c +++ b/app/test/test_link_bonding.c @@ -1160,6 +1160,12 @@ lsc_timeout(int wait_us) ts.tv_sec = tp.tv_sec; ts.tv_nsec = tp.tv_usec * 1000; ts.tv_nsec += wait_us * 1000; + /* Normalize tv_nsec to [0,999999999L] */ + while (ts.tv_nsec > 1000000000L) { + ts.tv_nsec -= 1000000000L; + ts.tv_sec += 1; + } + pthread_mutex_lock(&mutex); if (test_lsc_interrupt_count < 1) -- 2.21.0