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 amitoj1606@gmail.com --- Changes in v2: -change format string of now.tv_sec to '%llu' -change format string of now.tv_nsec to '%.08lu'
drivers/misc/ibmasm/ibmasm.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/misc/ibmasm/ibmasm.h b/drivers/misc/ibmasm/ibmasm.h index 9b08344..d73be61 100644 --- a/drivers/misc/ibmasm/ibmasm.h +++ b/drivers/misc/ibmasm/ibmasm.h @@ -34,6 +34,7 @@ #include <linux/kref.h> #include <linux/device.h> #include <linux/input.h> +#include <linux/time64.h>
/* Driver identification */ #define DRIVER_NAME "ibmasm" @@ -53,9 +54,9 @@ 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_usec); return buf; }
On Friday 23 October 2015 17:52:06 Amitoj Kaur Chawla wrote:
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 amitoj1606@gmail.com
Reviewed-by: Arnd Bergmann arnd@arndb.de
On Friday 23 October 2015 15:39:49 Arnd Bergmann wrote:
On Friday 23 October 2015 17:52:06 Amitoj Kaur Chawla wrote:
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 amitoj1606@gmail.com
Reviewed-by: Arnd Bergmann arnd@arndb.de
I was going to suggest to send this to the maintainers now, but after checking the MAINTAINERS file myself, I see that this would be Greg and me ;-)
Greg, can you pick this up into the char-misc tree?
Arnd
On Fri, Oct 23, 2015 at 7:17 PM, Arnd Bergmann arnd@arndb.de wrote:
On Friday 23 October 2015 15:39:49 Arnd Bergmann wrote:
On Friday 23 October 2015 17:52:06 Amitoj Kaur Chawla wrote:
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 amitoj1606@gmail.com
Reviewed-by: Arnd Bergmann arnd@arndb.de
I was going to suggest to send this to the maintainers now, but after checking the MAINTAINERS file myself, I see that this would be Greg and me ;-)
Greg, can you pick this up into the char-misc tree?
Arnd
Hi Arnd,
I made a slight error while sending v2 which I caught after figuring out of my issue of compiling the module.
I'm sending a v3 after build testing it.
Should I cc you and Greg separately or let it be?
On Friday 23 October 2015 19:28:00 Amitoj Kaur Chawla wrote:
On Fri, Oct 23, 2015 at 7:17 PM, Arnd Bergmann arnd@arndb.de wrote:
On Friday 23 October 2015 15:39:49 Arnd Bergmann wrote:
On Friday 23 October 2015 17:52:06 Amitoj Kaur Chawla wrote:
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 amitoj1606@gmail.com
Reviewed-by: Arnd Bergmann arnd@arndb.de
I was going to suggest to send this to the maintainers now, but after checking the MAINTAINERS file myself, I see that this would be Greg and me
Greg, can you pick this up into the char-misc tree?
Arnd
Hi Arnd,
I made a slight error while sending v2 which I caught after figuring out of my issue of compiling the module.
I'm sending a v3 after build testing it.
Should I cc you and Greg separately or let it be?
In general, it helps to Cc maintainers. We are good at ignoring duplicate mails.
Arnd