[ofa-general] [PATCH] opensm/complib: account for nsec overflow in timeout values

Ira Weiny weiny2 at llnl.gov
Thu Aug 6 18:37:16 PDT 2009


From: Ira Weiny <weiny2 at llnl.gov>
Date: Thu, 6 Aug 2009 18:31:46 -0700
Subject: [PATCH] opensm/complib: account for nsec overflow in timeout values


Signed-off-by: Ira Weiny <weiny2 at llnl.gov>
---
 opensm/complib/cl_event.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/opensm/complib/cl_event.c b/opensm/complib/cl_event.c
index d14b2f4..4bc8d37 100644
--- a/opensm/complib/cl_event.c
+++ b/opensm/complib/cl_event.c
@@ -148,9 +148,11 @@ cl_event_wait_on(IN cl_event_t * const p_event,
 	} else {
 		/* Get the current time */
 		if (gettimeofday(&curtime, NULL) == 0) {
-			timeout.tv_sec = curtime.tv_sec + (wait_us / 1000000);
-			timeout.tv_nsec =
-			    (curtime.tv_usec + (wait_us % 1000000)) * 1000;
+			uint32_t n_sec = (curtime.tv_usec + (wait_us % 1000000))
+						* 1000;
+			timeout.tv_sec = curtime.tv_sec + (wait_us / 1000000)
+						+ (n_sec % 1000000000);
+			timeout.tv_nsec = n_sec % 1000000000;
 
 			wait_ret = pthread_cond_timedwait(&p_event->condvar,
 							  &p_event->mutex,
-- 
1.5.4.5




More information about the general mailing list