net/hinic/base: avoid system time jump
authorXiaoyun Wang <cloud.wangxiaoyun@huawei.com>
Sat, 25 Jul 2020 08:15:36 +0000 (16:15 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 29 Jul 2020 22:41:23 +0000 (00:41 +0200)
Replace gettimeofday() with clock_gettime(CLOCK_MONOTONIC_RAW, &now),
the reason is same with
commit d08d304508a8 ("eal/linux: make alarm not affected by system time
jump")

Fixes: 81d53291a466 ("net/hinic/base: add various headers")
Cc: stable@dpdk.org
Signed-off-by: Xiaoyun Wang <cloud.wangxiaoyun@huawei.com>
drivers/net/hinic/base/hinic_compat.h

index 2d21b7b..7036b03 100644 (file)
@@ -166,16 +166,17 @@ static inline u32 readl(const volatile void *addr)
 #define spin_lock(spinlock_prt)                rte_spinlock_lock(spinlock_prt)
 #define spin_unlock(spinlock_prt)      rte_spinlock_unlock(spinlock_prt)
 
-static inline unsigned long get_timeofday_ms(void)
+static inline unsigned long clock_gettime_ms(void)
 {
-       struct timeval tv;
+       struct timespec tv;
 
-       (void)gettimeofday(&tv, NULL);
+       (void)clock_gettime(CLOCK_MONOTONIC, &tv);
 
-       return (unsigned long)tv.tv_sec * 1000 + tv.tv_usec / 1000;
+       return (unsigned long)tv.tv_sec * 1000 +
+              (unsigned long)tv.tv_nsec / 1000000;
 }
 
-#define jiffies        get_timeofday_ms()
+#define jiffies        clock_gettime_ms()
 #define msecs_to_jiffies(ms)   (ms)
 #define time_before(now, end)  ((now) < (end))