+17
-12
lines changedFilter options
+17
-12
lines changed Original file line number Diff line number Diff line change
@@ -473,15 +473,15 @@ void update_vsyscall_tz(void)
473
473
{
474
474
}
475
475
476
-
void update_vsyscall(struct timespec *wall, struct clocksource *c)
476
+
void update_vsyscall(struct timespec *wall, struct clocksource *c, u32 mult)
477
477
{
478
478
unsigned long flags;
479
479
480
480
write_seqlock_irqsave(&fsyscall_gtod_data.lock, flags);
481
481
482
482
/* copy fsyscall clock data */
483
483
fsyscall_gtod_data.clk_mask = c->mask;
484
-
fsyscall_gtod_data.clk_mult = c->mult;
484
+
fsyscall_gtod_data.clk_mult = mult;
485
485
fsyscall_gtod_data.clk_shift = c->shift;
486
486
fsyscall_gtod_data.clk_fsys_mmio = c->fsys_mmio;
487
487
fsyscall_gtod_data.clk_cycle_last = c->cycle_last;
Original file line number Diff line number Diff line change
@@ -828,7 +828,8 @@ static cycle_t timebase_read(struct clocksource *cs)
828
828
return (cycle_t)get_tb();
829
829
}
830
830
831
-
void update_vsyscall(struct timespec *wall_time, struct clocksource *clock)
831
+
void update_vsyscall(struct timespec *wall_time, struct clocksource *clock,
832
+
u32 mult)
832
833
{
833
834
u64 t2x, stamp_xsec;
834
835
@@ -841,7 +842,7 @@ void update_vsyscall(struct timespec *wall_time, struct clocksource *clock)
841
842
842
843
/* XXX this assumes clock->shift == 22 */
843
844
/* 4611686018 ~= 2^(20+64-22) / 1e9 */
844
-
t2x = (u64) clock->mult * 4611686018ULL;
845
+
t2x = (u64) mult * 4611686018ULL;
845
846
stamp_xsec = (u64) xtime.tv_nsec * XSEC_PER_SEC;
846
847
do_div(stamp_xsec, 1000000000);
847
848
stamp_xsec += (u64) xtime.tv_sec * XSEC_PER_SEC;
Original file line number Diff line number Diff line change
@@ -214,7 +214,8 @@ struct clocksource * __init clocksource_default_clock(void)
214
214
return &clocksource_tod;
215
215
}
216
216
217
-
void update_vsyscall(struct timespec *wall_time, struct clocksource *clock)
217
+
void update_vsyscall(struct timespec *wall_time, struct clocksource *clock,
218
+
u32 mult)
218
219
{
219
220
if (clock != &clocksource_tod)
220
221
return;
Original file line number Diff line number Diff line change
@@ -73,7 +73,8 @@ void update_vsyscall_tz(void)
73
73
write_sequnlock_irqrestore(&vsyscall_gtod_data.lock, flags);
74
74
}
75
75
76
-
void update_vsyscall(struct timespec *wall_time, struct clocksource *clock)
76
+
void update_vsyscall(struct timespec *wall_time, struct clocksource *clock,
77
+
u32 mult)
77
78
{
78
79
unsigned long flags;
79
80
@@ -82,7 +83,7 @@ void update_vsyscall(struct timespec *wall_time, struct clocksource *clock)
82
83
vsyscall_gtod_data.clock.vread = clock->vread;
83
84
vsyscall_gtod_data.clock.cycle_last = clock->cycle_last;
84
85
vsyscall_gtod_data.clock.mask = clock->mask;
85
-
vsyscall_gtod_data.clock.mult = clock->mult;
86
+
vsyscall_gtod_data.clock.mult = mult;
86
87
vsyscall_gtod_data.clock.shift = clock->shift;
87
88
vsyscall_gtod_data.wall_time_sec = wall_time->tv_sec;
88
89
vsyscall_gtod_data.wall_time_nsec = wall_time->tv_nsec;
Original file line number Diff line number Diff line change
@@ -280,10 +280,12 @@ extern struct clocksource * __init __weak clocksource_default_clock(void);
280
280
extern void clocksource_mark_unstable(struct clocksource *cs);
281
281
282
282
#ifdef CONFIG_GENERIC_TIME_VSYSCALL
283
-
extern void update_vsyscall(struct timespec *ts, struct clocksource *c);
283
+
extern void
284
+
update_vsyscall(struct timespec *ts, struct clocksource *c, u32 mult);
284
285
extern void update_vsyscall_tz(void);
285
286
#else
286
-
static inline void update_vsyscall(struct timespec *ts, struct clocksource *c)
287
+
static inline void
288
+
update_vsyscall(struct timespec *ts, struct clocksource *c, u32 mult)
287
289
{
288
290
}
289
291
Original file line number Diff line number Diff line change
@@ -177,7 +177,7 @@ void timekeeping_leap_insert(int leapsecond)
177
177
{
178
178
xtime.tv_sec += leapsecond;
179
179
wall_to_monotonic.tv_sec -= leapsecond;
180
-
update_vsyscall(&xtime, timekeeper.clock);
180
+
update_vsyscall(&xtime, timekeeper.clock, timekeeper.mult);
181
181
}
182
182
183
183
#ifdef CONFIG_GENERIC_TIME
@@ -337,7 +337,7 @@ int do_settimeofday(struct timespec *tv)
337
337
timekeeper.ntp_error = 0;
338
338
ntp_clear();
339
339
340
-
update_vsyscall(&xtime, timekeeper.clock);
340
+
update_vsyscall(&xtime, timekeeper.clock, timekeeper.mult);
341
341
342
342
write_sequnlock_irqrestore(&xtime_lock, flags);
343
343
@@ -811,7 +811,7 @@ void update_wall_time(void)
811
811
update_xtime_cache(nsecs);
812
812
813
813
/* check to see if there is a new clocksource to use */
814
-
update_vsyscall(&xtime, timekeeper.clock);
814
+
update_vsyscall(&xtime, timekeeper.clock, timekeeper.mult);
815
815
}
816
816
817
817
/**
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4