diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2026-05-17 11:07:09 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2026-05-17 11:07:09 -0700 |
| commit | 46cd5b22e58805b5651dfc732cd23615e940ac8d (patch) | |
| tree | df4529fa17faa92a55b5d7b725519a549d7792ad | |
| parent | c97481ab7973ef21084e71b8e965b51e69b574df (diff) | |
| parent | 602d60ebae0f10bfbc7ba90eee026fdbd0203df3 (diff) | |
Merge tag 'timers-urgent-2026-05-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer fix from Ingo Molnar:
- Fix potential garbage reads in the vDSO gettimeofday code
(Thomas Weißschuh)
* tag 'timers-urgent-2026-05-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
vdso/gettimeofday: Reload sequence counter after switch to time page in do_aux()
| -rw-r--r-- | lib/vdso/gettimeofday.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/vdso/gettimeofday.c b/lib/vdso/gettimeofday.c index a5798bd26d20..da224011fafd 100644 --- a/lib/vdso/gettimeofday.c +++ b/lib/vdso/gettimeofday.c @@ -248,11 +248,10 @@ bool do_aux(const struct vdso_time_data *vd, clockid_t clock, struct __kernel_ti vc = &vd->aux_clock_data[idx]; do { - if (vdso_read_begin_timens(vc, &seq)) { + while (vdso_read_begin_timens(vc, &seq)) { + /* Re-read from the real time data page, reload seq by looping */ vd = __arch_get_vdso_u_timens_data(vd); vc = &vd->aux_clock_data[idx]; - /* Re-read from the real time data page */ - continue; } /* Auxclock disabled? */ |
