This patch replaces timeval with timespec64 as 32 bit 'struct timeval'
will not give current time beyond 2038.

The patch changes the code to use ktime_get_real_ts64() which returns
a 'struct timespec64' instead of do_gettimeofday() which returns a
'struct timeval'

This patch also alters the format string in pr_info() for now.tv_sec
to incorporate 'long long' on 32 bit architectures.

Signed-off-by: Amitoj Kaur Chawla <amitoj1...@gmail.com>
---
Changes in v2:
        -Removed unnecessary format string change in pr_info()

 drivers/char/ipmi/ipmi_ssif.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/char/ipmi/ipmi_ssif.c b/drivers/char/ipmi/ipmi_ssif.c
index 877205d..90e6246 100644
--- a/drivers/char/ipmi/ipmi_ssif.c
+++ b/drivers/char/ipmi/ipmi_ssif.c
@@ -52,6 +52,7 @@
 #include <linux/kthread.h>
 #include <linux/acpi.h>
 #include <linux/ctype.h>
+#include <linux/time64.h>
 
 #define PFX "ipmi_ssif: "
 #define DEVICE_NAME "ipmi_ssif"
@@ -1041,12 +1042,12 @@ static void sender(void                *send_info,
        start_next_msg(ssif_info, flags);
 
        if (ssif_info->ssif_debug & SSIF_DEBUG_TIMING) {
-               struct timeval t;
+               struct timespec64 t;
 
-               do_gettimeofday(&t);
-               pr_info("**Enqueue %02x %02x: %ld.%6.6ld\n",
+               ktime_get_real_ts64(&t);
+               pr_info("**Enqueue %02x %02x: %lld.%6.6ld\n",
                       msg->data[0], msg->data[1],
-                      (long) t.tv_sec, (long) t.tv_usec);
+                      (long long) t.tv_sec, (long) t.tv_nsec / NSEC_PER_USEC);
        }
 }
 
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to