18
18
static inline void update_vdso_time_data (struct vdso_time_data * vdata , struct timekeeper * tk )
19
19
{
20
20
struct vdso_timestamp * vdso_ts ;
21
+ struct vdso_clock * vc = vdata ;
21
22
u64 nsec , sec ;
22
23
23
- vdata [CS_HRES_COARSE ].cycle_last = tk -> tkr_mono .cycle_last ;
24
+ vc [CS_HRES_COARSE ].cycle_last = tk -> tkr_mono .cycle_last ;
24
25
#ifdef CONFIG_GENERIC_VDSO_OVERFLOW_PROTECT
25
- vdata [CS_HRES_COARSE ].max_cycles = tk -> tkr_mono .clock -> max_cycles ;
26
+ vc [CS_HRES_COARSE ].max_cycles = tk -> tkr_mono .clock -> max_cycles ;
26
27
#endif
27
- vdata [CS_HRES_COARSE ].mask = tk -> tkr_mono .mask ;
28
- vdata [CS_HRES_COARSE ].mult = tk -> tkr_mono .mult ;
29
- vdata [CS_HRES_COARSE ].shift = tk -> tkr_mono .shift ;
30
- vdata [CS_RAW ].cycle_last = tk -> tkr_raw .cycle_last ;
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 ;
31
32
#ifdef CONFIG_GENERIC_VDSO_OVERFLOW_PROTECT
32
- vdata [CS_RAW ].max_cycles = tk -> tkr_raw .clock -> max_cycles ;
33
+ vc [CS_RAW ].max_cycles = tk -> tkr_raw .clock -> max_cycles ;
33
34
#endif
34
- vdata [CS_RAW ].mask = tk -> tkr_raw .mask ;
35
- vdata [CS_RAW ].mult = tk -> tkr_raw .mult ;
36
- vdata [CS_RAW ].shift = tk -> tkr_raw .shift ;
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 ;
37
38
38
39
/* CLOCK_MONOTONIC */
39
- vdso_ts = & vdata [CS_HRES_COARSE ].basetime [CLOCK_MONOTONIC ];
40
+ vdso_ts = & vc [CS_HRES_COARSE ].basetime [CLOCK_MONOTONIC ];
40
41
vdso_ts -> sec = tk -> xtime_sec + tk -> wall_to_monotonic .tv_sec ;
41
42
42
43
nsec = tk -> tkr_mono .xtime_nsec ;
@@ -54,7 +55,7 @@ static inline void update_vdso_time_data(struct vdso_time_data *vdata, struct ti
54
55
nsec += (u64 )tk -> monotonic_to_boot .tv_nsec << tk -> tkr_mono .shift ;
55
56
56
57
/* CLOCK_BOOTTIME */
57
- vdso_ts = & vdata [CS_HRES_COARSE ].basetime [CLOCK_BOOTTIME ];
58
+ vdso_ts = & vc [CS_HRES_COARSE ].basetime [CLOCK_BOOTTIME ];
58
59
vdso_ts -> sec = sec ;
59
60
60
61
while (nsec >= (((u64 )NSEC_PER_SEC ) << tk -> tkr_mono .shift )) {
@@ -64,12 +65,12 @@ static inline void update_vdso_time_data(struct vdso_time_data *vdata, struct ti
64
65
vdso_ts -> nsec = nsec ;
65
66
66
67
/* CLOCK_MONOTONIC_RAW */
67
- vdso_ts = & vdata [CS_RAW ].basetime [CLOCK_MONOTONIC_RAW ];
68
+ vdso_ts = & vc [CS_RAW ].basetime [CLOCK_MONOTONIC_RAW ];
68
69
vdso_ts -> sec = tk -> raw_sec ;
69
70
vdso_ts -> nsec = tk -> tkr_raw .xtime_nsec ;
70
71
71
72
/* CLOCK_TAI */
72
- vdso_ts = & vdata [CS_HRES_COARSE ].basetime [CLOCK_TAI ];
73
+ vdso_ts = & vc [CS_HRES_COARSE ].basetime [CLOCK_TAI ];
73
74
vdso_ts -> sec = tk -> xtime_sec + (s64 )tk -> tai_offset ;
74
75
vdso_ts -> nsec = tk -> tkr_mono .xtime_nsec ;
75
76
}
@@ -78,28 +79,29 @@ void update_vsyscall(struct timekeeper *tk)
78
79
{
79
80
struct vdso_time_data * vdata = vdso_k_time_data ;
80
81
struct vdso_timestamp * vdso_ts ;
82
+ struct vdso_clock * vc = vdata ;
81
83
s32 clock_mode ;
82
84
u64 nsec ;
83
85
84
86
/* copy vsyscall data */
85
87
vdso_write_begin (vdata );
86
88
87
89
clock_mode = tk -> tkr_mono .clock -> vdso_clock_mode ;
88
- vdata [CS_HRES_COARSE ].clock_mode = clock_mode ;
89
- vdata [CS_RAW ].clock_mode = clock_mode ;
90
+ vc [CS_HRES_COARSE ].clock_mode = clock_mode ;
91
+ vc [CS_RAW ].clock_mode = clock_mode ;
90
92
91
93
/* CLOCK_REALTIME also required for time() */
92
- vdso_ts = & vdata [CS_HRES_COARSE ].basetime [CLOCK_REALTIME ];
94
+ vdso_ts = & vc [CS_HRES_COARSE ].basetime [CLOCK_REALTIME ];
93
95
vdso_ts -> sec = tk -> xtime_sec ;
94
96
vdso_ts -> nsec = tk -> tkr_mono .xtime_nsec ;
95
97
96
98
/* CLOCK_REALTIME_COARSE */
97
- vdso_ts = & vdata [CS_HRES_COARSE ].basetime [CLOCK_REALTIME_COARSE ];
99
+ vdso_ts = & vc [CS_HRES_COARSE ].basetime [CLOCK_REALTIME_COARSE ];
98
100
vdso_ts -> sec = tk -> xtime_sec ;
99
101
vdso_ts -> nsec = tk -> tkr_mono .xtime_nsec >> tk -> tkr_mono .shift ;
100
102
101
103
/* CLOCK_MONOTONIC_COARSE */
102
- vdso_ts = & vdata [CS_HRES_COARSE ].basetime [CLOCK_MONOTONIC_COARSE ];
104
+ vdso_ts = & vc [CS_HRES_COARSE ].basetime [CLOCK_MONOTONIC_COARSE ];
103
105
vdso_ts -> sec = tk -> xtime_sec + tk -> wall_to_monotonic .tv_sec ;
104
106
nsec = tk -> tkr_mono .xtime_nsec >> tk -> tkr_mono .shift ;
105
107
nsec = nsec + tk -> wall_to_monotonic .tv_nsec ;
0 commit comments