diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-02-10 23:01:52 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-02-13 17:49:36 -0500 |
commit | affe3e85ae78507cc953f3f700e0644e50844cff (patch) | |
tree | 7f29d6565dc433a42492187537d7473b192652f1 /kernel | |
parent | 3810631332465d967ba5e27ea2c7dff2c9afac6c (diff) |
timekeeping: Pass readout base to update_fast_timekeeper()
Modify update_fast_timekeeper() to take a struct tk_read_base
pointer as its argument (instead of a struct timekeeper pointer)
and update its kerneldoc comment to reflect that.
That will allow a struct tk_read_base that is not part of a
struct timekeeper to be passed to it in the next patch.
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: John Stultz <john.stultz@linaro.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/time/timekeeping.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index b124af259800..abf08f4366c1 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c | |||
@@ -230,9 +230,7 @@ static inline s64 timekeeping_get_ns_raw(struct timekeeper *tk) | |||
230 | 230 | ||
231 | /** | 231 | /** |
232 | * update_fast_timekeeper - Update the fast and NMI safe monotonic timekeeper. | 232 | * update_fast_timekeeper - Update the fast and NMI safe monotonic timekeeper. |
233 | * @tk: The timekeeper from which we take the update | 233 | * @tkr: Timekeeping readout base from which we take the update |
234 | * @tkf: The fast timekeeper to update | ||
235 | * @tbase: The time base for the fast timekeeper (mono/raw) | ||
236 | * | 234 | * |
237 | * We want to use this from any context including NMI and tracing / | 235 | * We want to use this from any context including NMI and tracing / |
238 | * instrumenting the timekeeping code itself. | 236 | * instrumenting the timekeeping code itself. |
@@ -244,11 +242,11 @@ static inline s64 timekeeping_get_ns_raw(struct timekeeper *tk) | |||
244 | * smp_wmb(); <- Ensure that the last base[1] update is visible | 242 | * smp_wmb(); <- Ensure that the last base[1] update is visible |
245 | * tkf->seq++; | 243 | * tkf->seq++; |
246 | * smp_wmb(); <- Ensure that the seqcount update is visible | 244 | * smp_wmb(); <- Ensure that the seqcount update is visible |
247 | * update(tkf->base[0], tk); | 245 | * update(tkf->base[0], tkr); |
248 | * smp_wmb(); <- Ensure that the base[0] update is visible | 246 | * smp_wmb(); <- Ensure that the base[0] update is visible |
249 | * tkf->seq++; | 247 | * tkf->seq++; |
250 | * smp_wmb(); <- Ensure that the seqcount update is visible | 248 | * smp_wmb(); <- Ensure that the seqcount update is visible |
251 | * update(tkf->base[1], tk); | 249 | * update(tkf->base[1], tkr); |
252 | * | 250 | * |
253 | * The reader side does: | 251 | * The reader side does: |
254 | * | 252 | * |
@@ -269,7 +267,7 @@ static inline s64 timekeeping_get_ns_raw(struct timekeeper *tk) | |||
269 | * slightly wrong timestamp (a few nanoseconds). See | 267 | * slightly wrong timestamp (a few nanoseconds). See |
270 | * @ktime_get_mono_fast_ns. | 268 | * @ktime_get_mono_fast_ns. |
271 | */ | 269 | */ |
272 | static void update_fast_timekeeper(struct timekeeper *tk) | 270 | static void update_fast_timekeeper(struct tk_read_base *tkr) |
273 | { | 271 | { |
274 | struct tk_read_base *base = tk_fast_mono.base; | 272 | struct tk_read_base *base = tk_fast_mono.base; |
275 | 273 | ||
@@ -277,7 +275,7 @@ static void update_fast_timekeeper(struct timekeeper *tk) | |||
277 | raw_write_seqcount_latch(&tk_fast_mono.seq); | 275 | raw_write_seqcount_latch(&tk_fast_mono.seq); |
278 | 276 | ||
279 | /* Update base[0] */ | 277 | /* Update base[0] */ |
280 | memcpy(base, &tk->tkr, sizeof(*base)); | 278 | memcpy(base, tkr, sizeof(*base)); |
281 | 279 | ||
282 | /* Force readers back to base[0] */ | 280 | /* Force readers back to base[0] */ |
283 | raw_write_seqcount_latch(&tk_fast_mono.seq); | 281 | raw_write_seqcount_latch(&tk_fast_mono.seq); |
@@ -462,7 +460,7 @@ static void timekeeping_update(struct timekeeper *tk, unsigned int action) | |||
462 | memcpy(&shadow_timekeeper, &tk_core.timekeeper, | 460 | memcpy(&shadow_timekeeper, &tk_core.timekeeper, |
463 | sizeof(tk_core.timekeeper)); | 461 | sizeof(tk_core.timekeeper)); |
464 | 462 | ||
465 | update_fast_timekeeper(tk); | 463 | update_fast_timekeeper(&tk->tkr); |
466 | } | 464 | } |
467 | 465 | ||
468 | /** | 466 | /** |