*/
 static inline void dst_cache_reset(struct dst_cache *dst_cache)
 {
-       dst_cache->reset_ts = jiffies;
+       WRITE_ONCE(dst_cache->reset_ts, jiffies);
 }
 
 /**
 
        /* the cache already hold a dst reference; it can't go away */
        dst_hold(dst);
 
-       if (unlikely(!time_after(idst->refresh_ts, dst_cache->reset_ts) ||
+       if (unlikely(!time_after(idst->refresh_ts,
+                                READ_ONCE(dst_cache->reset_ts)) ||
                     (dst->obsolete && !dst->ops->check(dst, idst->cookie)))) {
                dst_cache_per_cpu_dst_set(idst, NULL, 0);
                dst_release(dst);
        if (!dst_cache->cache)
                return;
 
-       dst_cache->reset_ts = jiffies;
+       dst_cache_reset(dst_cache);
        for_each_possible_cpu(i) {
                struct dst_cache_pcpu *idst = per_cpu_ptr(dst_cache->cache, i);
                struct dst_entry *dst = idst->dst;