Print this page
4851 IPsec should use NANOSEC & friends from time.h

@@ -4217,17 +4217,17 @@
 timeout_id_t
 sadb_retimeout(hrtime_t begin, queue_t *pfkey_q, void (*ager)(void *),
     void *agerarg, uint_t *intp, uint_t intmax, short mid)
 {
         hrtime_t end = gethrtime();
-        uint_t interval = *intp;
+        uint_t interval = *intp;        /* "interval" is in ms. */
 
         /*
          * See how long this took.  If it took too long, increase the
          * aging interval.
          */
-        if ((end - begin) > (hrtime_t)interval * (hrtime_t)1000000) {
+        if ((end - begin) > MSEC2NSEC(interval)) {
                 if (interval >= intmax) {
                         /* XXX Rate limit this?  Or recommend flush? */
                         (void) strlog(mid, 0, 0, SL_ERROR | SL_WARN,
                             "Too many SA's to age out in %d msec.\n",
                             intmax);

@@ -4234,11 +4234,11 @@
                 } else {
                         /* Double by shifting by one bit. */
                         interval <<= 1;
                         interval = min(interval, intmax);
                 }
-        } else if ((end - begin) <= (hrtime_t)interval * (hrtime_t)500000 &&
+        } else if ((end - begin) <= (MSEC2NSEC(interval) / 2) &&
             interval > SADB_AGE_INTERVAL_DEFAULT) {
                 /*
                  * If I took less than half of the interval, then I should
                  * ratchet the interval back down.  Never automatically
                  * shift below the default aging interval.

@@ -4253,11 +4253,11 @@
                 interval >>= 1;
                 interval = max(interval, SADB_AGE_INTERVAL_DEFAULT);
         }
         *intp = interval;
         return (qtimeout(pfkey_q, ager, agerarg,
-            drv_usectohz(interval * 1000)));
+            drv_usectohz(interval * (MICROSEC / MILLISEC))));
 }
 
 
 /*
  * Update the lifetime values of an SA.  This is the path an SADB_UPDATE