diff options
| author | Peter Zijlstra <peterz@infradead.org> | 2025-10-09 22:11:54 +0200 |
|---|---|---|
| committer | Peter Zijlstra <peterz@infradead.org> | 2025-10-21 12:31:57 +0200 |
| commit | cc39f3872c0865bef992b713338df369554fa9e0 (patch) | |
| tree | 01b33d0315b979baa2e35f92d1d12a8b1e6ace3c /rust/kernel | |
| parent | 28a0ee311960baad97bf85e1e995aed4a71e22a2 (diff) | |
seqlock: Introduce scoped_seqlock_read()
The read_seqbegin/need_seqretry/done_seqretry API is cumbersome and
error prone. With the new helper the "typical" code like
int seq, nextseq;
unsigned long flags;
nextseq = 0;
do {
seq = nextseq;
flags = read_seqbegin_or_lock_irqsave(&seqlock, &seq);
// read-side critical section
nextseq = 1;
} while (need_seqretry(&seqlock, seq));
done_seqretry_irqrestore(&seqlock, seq, flags);
can be rewritten as
scoped_seqlock_read (&seqlock, ss_lock_irqsave) {
// read-side critical section
}
Original idea by Oleg Nesterov; with contributions from Linus.
Originally-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Diffstat (limited to 'rust/kernel')
0 files changed, 0 insertions, 0 deletions