32 bit systems using 'struct timeval' will break in the year 2038, so we replace the code appropriately.
This patch replaces struct timeval and do_gettimeofday() with monotonic ktime_get_ns(). Since we are interested in microseconds portion of the time, we can use NSEC_PER_USEC macro but this would lead to expensive division for a frequently used function.
Alternatively a bit shift has been done which performs a division of 1024 instead of 1000 which slightly alters the value returned by this function.
Signed-off-by: Amitoj Kaur Chawla amitoj1606@gmail.com --- drivers/scsi/bfa/bfa_cs.h | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/drivers/scsi/bfa/bfa_cs.h b/drivers/scsi/bfa/bfa_cs.h index 91a8aa3..daee860 100644 --- a/drivers/scsi/bfa/bfa_cs.h +++ b/drivers/scsi/bfa/bfa_cs.h @@ -32,13 +32,7 @@ #define BFA_TRC_MAX (4 * 1024) #endif
-#define BFA_TRC_TS(_trcm) \ - ({ \ - struct timeval tv; \ - \ - do_gettimeofday(&tv); \ - (tv.tv_sec*1000000+tv.tv_usec); \ - }) +#define BFA_TRC_TS(_trcm) (ktime_get_ns() >> 10)
#ifndef BFA_TRC_TS #define BFA_TRC_TS(_trcm) ((_trcm)->ticks++)