seqcount
u64 seqcount; /* used to synchronize access, also count * 2 */
OFFSET(TAS_SEQCOUNT, kvmhv_tb_accumulator, seqcount);
count = acc->seqcount;
if (count == acc->seqcount) {
seq = curr->seqcount;
curr->seqcount = seq + 1;
curr->seqcount = seq + 2;
seq = this_cpu_read(cyc2ns.seq.seqcount.sequence);
} while (unlikely(seq != this_cpu_read(cyc2ns.seq.seqcount.sequence)));
#define ROGUE_FWIF_TIME_CORR_CURR_INDEX(seqcount) \
((seqcount) % ROGUE_FWIF_TIME_CORR_ARRAY_SIZE)
(const seqcount_t *)&sde->head_lock.seqcount);
if (__read_seqcount_retry(&mount_lock.seqcount, nd->m_seq))
if (__read_seqcount_retry(&rename_lock.seqcount, nd->r_seq))
nd->m_seq = __read_seqcount_begin(&mount_lock.seqcount);
nd->r_seq = __read_seqcount_begin(&rename_lock.seqcount);
seqcount_t seqcount;
seqcount_init(&____s->seqcount); \
return &s->seqcount; \
return &s->seqcount; \
unsigned seq = smp_load_acquire(&s->seqcount.sequence); \
seq = smp_load_acquire(&s->seqcount.sequence); \
.seqcount = SEQCNT_ZERO(seq_name.seqcount), \
seqcount_t seqcount;
.seqcount = SEQCNT_ZERO(seq_name.seqcount), \
#define seqcount_latch_init(s) seqcount_init(&(s)->seqcount)
return READ_ONCE(s->seqcount.sequence);
return unlikely(READ_ONCE(s->seqcount.sequence) != start);
s->seqcount.sequence++;
.seqcount = SEQCNT_SPINLOCK_ZERO(lockname, &(lockname).lock), \
seqcount_spinlock_init(&(sl)->seqcount, &(sl)->lock); \
return read_seqcount_begin(&sl->seqcount);
return read_seqcount_retry(&sl->seqcount, start);
do_write_seqcount_begin(&sl->seqcount.seqcount);
do_write_seqcount_end(&sl->seqcount.seqcount);
do_write_seqcount_begin(&sl->seqcount.seqcount);
do_write_seqcount_end(&sl->seqcount.seqcount);
do_write_seqcount_begin(&sl->seqcount.seqcount);
do_write_seqcount_end(&sl->seqcount.seqcount);
do_write_seqcount_begin(&sl->seqcount.seqcount);
do_write_seqcount_end(&sl->seqcount.seqcount);
seqcount_t seqcount; \
seqcount_spinlock_t seqcount;
.vtime.seqcount = SEQCNT_ZERO(init_task.vtime_seqcount),
seqcount_init(&p->vtime.seqcount);
write_seqcount_end(&vtime->seqcount);
seq = read_seqcount_begin(&vtime->seqcount);
} while (read_seqcount_retry(&vtime->seqcount, seq));
seq = read_seqcount_begin(&vtime->seqcount);
} while (read_seqcount_retry(&vtime->seqcount, seq));
seq = read_seqcount_begin(&vtime->seqcount);
} while (read_seqcount_retry(&vtime->seqcount, seq));
seq = read_seqcount_begin(&vtime->seqcount);
} while (read_seqcount_retry(&vtime->seqcount, seq));
write_seqcount_begin(&vtime->seqcount);
write_seqcount_end(&vtime->seqcount);
write_seqcount_begin(&vtime->seqcount);
write_seqcount_end(&vtime->seqcount);
write_seqcount_begin(&vtime->seqcount);
write_seqcount_end(&vtime->seqcount);
write_seqcount_begin(&vtime->seqcount);
write_seqcount_end(&vtime->seqcount);
write_seqcount_begin(&vtime->seqcount);
write_seqcount_end(&vtime->seqcount);
write_seqcount_begin(&vtime->seqcount);
write_seqcount_end(&vtime->seqcount);
write_seqcount_begin(&vtime->seqcount);
write_seqcount_end(&vtime->seqcount);
write_seqcount_begin(&vtime->seqcount);
seq = read_seqcount_begin(&pid_list->seqcount);
} while (read_seqcount_retry(&pid_list->seqcount, seq));
write_seqcount_begin(&pid_list->seqcount);
write_seqcount_end(&pid_list->seqcount);
write_seqcount_begin(&pid_list->seqcount);
write_seqcount_end(&pid_list->seqcount);
write_seqcount_begin(&pid_list->seqcount);
write_seqcount_end(&pid_list->seqcount);
write_seqcount_begin(&pid_list->seqcount);
write_seqcount_end(&pid_list->seqcount);
seqcount_raw_spinlock_init(&pid_list->seqcount, &pid_list->lock);
seqcount_raw_spinlock_t seqcount;