On Fri, Oct 23, 2015 at 08:37:49PM +0530, 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 <[email protected]>
> Reviewed-by: Arnd Bergmann <[email protected]>
> ---
> 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 <linux/kref.h>
>  #include <linux/device.h>
>  #include <linux/input.h>
> +#include <linux/time64.h>
>  
>  /* 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;
>  }
>  

Always run your patches through checkpatch so that a maintainer doesn't
have to be grumpy and tell you to fix up the obvious checkpatch issues
in it...

thanks,

greg k-h

Reply via email to