|
@@ -221,10 +221,11 @@ void update_vsyscall(struct timekeeper *tk)
|
|
/* tkr_mono.cycle_last == tkr_raw.cycle_last */
|
|
/* tkr_mono.cycle_last == tkr_raw.cycle_last */
|
|
vdso_data->cs_cycle_last = tk->tkr_mono.cycle_last;
|
|
vdso_data->cs_cycle_last = tk->tkr_mono.cycle_last;
|
|
vdso_data->raw_time_sec = tk->raw_time.tv_sec;
|
|
vdso_data->raw_time_sec = tk->raw_time.tv_sec;
|
|
- vdso_data->raw_time_nsec = tk->raw_time.tv_nsec;
|
|
|
|
|
|
+ vdso_data->raw_time_nsec = (tk->raw_time.tv_nsec <<
|
|
|
|
+ tk->tkr_raw.shift) +
|
|
|
|
+ tk->tkr_raw.xtime_nsec;
|
|
vdso_data->xtime_clock_sec = tk->xtime_sec;
|
|
vdso_data->xtime_clock_sec = tk->xtime_sec;
|
|
vdso_data->xtime_clock_nsec = tk->tkr_mono.xtime_nsec;
|
|
vdso_data->xtime_clock_nsec = tk->tkr_mono.xtime_nsec;
|
|
- /* tkr_raw.xtime_nsec == 0 */
|
|
|
|
vdso_data->cs_mono_mult = tk->tkr_mono.mult;
|
|
vdso_data->cs_mono_mult = tk->tkr_mono.mult;
|
|
vdso_data->cs_raw_mult = tk->tkr_raw.mult;
|
|
vdso_data->cs_raw_mult = tk->tkr_raw.mult;
|
|
/* tkr_mono.shift == tkr_raw.shift */
|
|
/* tkr_mono.shift == tkr_raw.shift */
|