]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - kernel/time/tick-common.c
timekeeping: Split jiffies seqlock
[mirror_ubuntu-jammy-kernel.git] / kernel / time / tick-common.c
index 7e5d3524e924da2a39a0296311a890bc3a7ad3fd..6c9c342dd0e53a70970b7daf1218af0917a24985 100644 (file)
@@ -84,13 +84,15 @@ int tick_is_oneshot_available(void)
 static void tick_periodic(int cpu)
 {
        if (tick_do_timer_cpu == cpu) {
-               write_seqlock(&jiffies_lock);
+               raw_spin_lock(&jiffies_lock);
+               write_seqcount_begin(&jiffies_seq);
 
                /* Keep track of the next tick event */
                tick_next_period = ktime_add(tick_next_period, tick_period);
 
                do_timer(1);
-               write_sequnlock(&jiffies_lock);
+               write_seqcount_end(&jiffies_seq);
+               raw_spin_unlock(&jiffies_lock);
                update_wall_time();
        }
 
@@ -162,9 +164,9 @@ void tick_setup_periodic(struct clock_event_device *dev, int broadcast)
                ktime_t next;
 
                do {
-                       seq = read_seqbegin(&jiffies_lock);
+                       seq = read_seqcount_begin(&jiffies_seq);
                        next = tick_next_period;
-               } while (read_seqretry(&jiffies_lock, seq));
+               } while (read_seqcount_retry(&jiffies_seq, seq));
 
                clockevents_switch_state(dev, CLOCK_EVT_STATE_ONESHOT);