Skip to content

Commit 6fedaf6

Browse files
t-8chKAGA-KOKO
authored andcommitted
vdso/vsyscall: Introduce a helper to fill clock configurations
The logic to configure a 'struct vdso_clock' from a 'struct tk_read_base' is copied two times. Split it into a shared function to reduce the duplication, especially as another user will be added for auxiliary clocks. Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250701-vdso-auxclock-v1-2-df7d9f87b9b8@linutronix.de
1 parent 068f7b6 commit 6fedaf6

1 file changed

Lines changed: 13 additions & 14 deletions

File tree

kernel/time/vsyscall.c

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,25 @@
1515

1616
#include "timekeeping_internal.h"
1717

18+
static inline void fill_clock_configuration(struct vdso_clock *vc, const struct tk_read_base *base)
19+
{
20+
vc->cycle_last = base->cycle_last;
21+
#ifdef CONFIG_GENERIC_VDSO_OVERFLOW_PROTECT
22+
vc->max_cycles = base->clock->max_cycles;
23+
#endif
24+
vc->mask = base->mask;
25+
vc->mult = base->mult;
26+
vc->shift = base->shift;
27+
}
28+
1829
static inline void update_vdso_time_data(struct vdso_time_data *vdata, struct timekeeper *tk)
1930
{
2031
struct vdso_clock *vc = vdata->clock_data;
2132
struct vdso_timestamp *vdso_ts;
2233
u64 nsec, sec;
2334

24-
vc[CS_HRES_COARSE].cycle_last = tk->tkr_mono.cycle_last;
25-
#ifdef CONFIG_GENERIC_VDSO_OVERFLOW_PROTECT
26-
vc[CS_HRES_COARSE].max_cycles = tk->tkr_mono.clock->max_cycles;
27-
#endif
28-
vc[CS_HRES_COARSE].mask = tk->tkr_mono.mask;
29-
vc[CS_HRES_COARSE].mult = tk->tkr_mono.mult;
30-
vc[CS_HRES_COARSE].shift = tk->tkr_mono.shift;
31-
vc[CS_RAW].cycle_last = tk->tkr_raw.cycle_last;
32-
#ifdef CONFIG_GENERIC_VDSO_OVERFLOW_PROTECT
33-
vc[CS_RAW].max_cycles = tk->tkr_raw.clock->max_cycles;
34-
#endif
35-
vc[CS_RAW].mask = tk->tkr_raw.mask;
36-
vc[CS_RAW].mult = tk->tkr_raw.mult;
37-
vc[CS_RAW].shift = tk->tkr_raw.shift;
35+
fill_clock_configuration(&vc[CS_HRES_COARSE], &tk->tkr_mono);
36+
fill_clock_configuration(&vc[CS_RAW], &tk->tkr_raw);
3837

3938
/* CLOCK_MONOTONIC */
4039
vdso_ts = &vc[CS_HRES_COARSE].basetime[CLOCK_MONOTONIC];

0 commit comments

Comments
 (0)