From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752027AbbJWPH4 (ORCPT ); Fri, 23 Oct 2015 11:07:56 -0400 Received: from mail-pa0-f53.google.com ([209.85.220.53]:33413 "EHLO mail-pa0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751274AbbJWPHz (ORCPT ); Fri, 23 Oct 2015 11:07:55 -0400 Date: Fri, 23 Oct 2015 20:37:49 +0530 From: Amitoj Kaur Chawla To: outreachy-kernel@googlegroups.com Cc: arnd@arndb.de, gregkh@linuxfoundation.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org Subject: [PATCH v3] misc: ibmasm: Replace timeval with timespec64 Message-ID: <20151023150749.GA13762@amitoj-Inspiron-3542> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 strings in sprintf() for now.tv_sec and now.tv_nsec to incorporate 'long long' on 32 bit architectures and leading zeroes respectively. Signed-off-by: Amitoj Kaur Chawla Reviewed-by: Arnd Bergmann --- Changes in v2: -change format string of now.tv_sec to '%llu' -change format string of now.tv_nsec to '%.08lu' Changes in v3: -Replace tv_usec with tv_nsec, error made in v2 -Build tested drivers/misc/ibmasm/ibmasm.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/misc/ibmasm/ibmasm.h b/drivers/misc/ibmasm/ibmasm.h index 9b08344..82380ae 100644 --- a/drivers/misc/ibmasm/ibmasm.h +++ b/drivers/misc/ibmasm/ibmasm.h @@ -34,6 +34,7 @@ #include #include #include +#include /* Driver identification */ #define DRIVER_NAME "ibmasm" @@ -53,9 +54,10 @@ extern int ibmasm_debug; static inline char *get_timestamp(char *buf) { - struct timeval now; - do_gettimeofday(&now); - sprintf(buf, "%lu.%lu", now.tv_sec, now.tv_usec); + struct timespec64 now; + ktime_get_real_ts64(&now); + sprintf(buf, "%llu.%.08lu", (long long)now.tv_sec, + now.tv_nsec / NSEC_PER_USEC); return buf; } -- 1.9.1