From: Arnd Bergmann Date: Fri, 10 Nov 2017 15:37:09 +0000 (+0100) Subject: scsi: bfa: use ktime_get_real_ts64 for firmware timestamp X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=7e75f6077074a7ce2c62092acbad0665ba88485d;p=linux.git scsi: bfa: use ktime_get_real_ts64 for firmware timestamp BFA_TRC_TS() calculates a 32-bit microsecond timestamp using the deprecated do_gettimeofday() function. This overflows roughly every 71 minutes, so it's obviously not used as an absolute time stamp, but it seems wrong to use a time base for it that will jump during settimeofday() calls, leap seconds, or the y2038 overflow. This converts it to ktime_get_ts64(), which has none of those problems but is not synchronized to wall-clock time. Signed-off-by: Arnd Bergmann Acked-by: Anil Gurumurthy Signed-off-by: Martin K. Petersen --- diff --git a/drivers/scsi/bfa/bfa_cs.h b/drivers/scsi/bfa/bfa_cs.h index df6760ca09112..9685efc59b160 100644 --- a/drivers/scsi/bfa/bfa_cs.h +++ b/drivers/scsi/bfa/bfa_cs.h @@ -35,10 +35,10 @@ #define BFA_TRC_TS(_trcm) \ ({ \ - struct timeval tv; \ + struct timespec64 ts; \ \ - do_gettimeofday(&tv); \ - (tv.tv_sec*1000000+tv.tv_usec); \ + ktime_get_ts64(&ts); \ + (ts.tv_sec*1000000+ts.tv_nsec / 1000); \ }) #ifndef BFA_TRC_TS