Staging: lustre: lnet: lnet: Better cookie gen
authorTina Ruchandani <ruchandani.tina@gmail.com>
Thu, 30 Oct 2014 21:35:01 +0000 (14:35 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 Oct 2014 21:41:59 +0000 (14:41 -0700)
api-ni.c uses do_gettimeofday to get a 'cookie' or timestamp.
This patch replaces it with ktime_get_ns for the following reasons:
1. ktime_get_ns returns a __u64 which is safer than 'struct timeval'
which will overflow on 32-bit systems in year 2038 and beyond.
2. Improved resolution: nsecs instead of usecs.
3. Reduced compute: ktime_get_ns is faster than the multiply/add
   combination used in this function

Signed-off-by: Tina Ruchandani <ruchandani.tina@gmail.com>
Suggested-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lnet/lnet/api-ni.c

index 60bc2ae4fdf1fe0ac6a0bfff6fdf6fca70701d28..5e6e4e22ed31923f9ae6788033e3b652a8edb8e6 100644 (file)
@@ -37,6 +37,7 @@
 #define DEBUG_SUBSYSTEM S_LNET
 #include "../../include/linux/lnet/lib-lnet.h"
 #include <linux/log2.h>
+#include <linux/ktime.h>
 
 #define D_LNI D_CONSOLE
 
@@ -417,17 +418,9 @@ static __u64
 lnet_create_interface_cookie(void)
 {
        /* NB the interface cookie in wire handles guards against delayed
-        * replies and ACKs appearing valid after reboot. Initialisation time,
-        * even if it's only implemented to millisecond resolution is probably
-        * easily good enough. */
-       struct timeval tv;
-       __u64     cookie;
-
-       do_gettimeofday(&tv);
-       cookie = tv.tv_sec;
-       cookie *= 1000000;
-       cookie += tv.tv_usec;
-       return cookie;
+        * replies and ACKs appearing valid after reboot.
+        */
+       return ktime_get_ns();
 }
 
 static char *