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

Reply via email to