Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull timer fixes from Thomas Gleixner:
"A set of small fixes:

- Repair the ktime_get_coarse() functions so they actually deliver
what they are supposed to: tick granular time stamps. The current
code missed to add the accumulated nanoseconds part of the
timekeeper so the resulting granularity was 1 second.

- Prevent the tracer from infinitely recursing into time getter
functions in the arm architectured timer by marking these functions
notrace

- Fix a trivial compiler warning caused by wrong qualifier ordering"

* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
timekeeping: Repair ktime_get_coarse*() granularity
clocksource/drivers/arm_arch_timer: Don't trace count reader functions
clocksource/drivers/timer-ti-dm: Change to new style declaration

+8 -7
+4 -4
drivers/clocksource/arm_arch_timer.c
··· 149 149 return val; 150 150 } 151 151 152 - static u64 arch_counter_get_cntpct_stable(void) 152 + static notrace u64 arch_counter_get_cntpct_stable(void) 153 153 { 154 154 return __arch_counter_get_cntpct_stable(); 155 155 } 156 156 157 - static u64 arch_counter_get_cntpct(void) 157 + static notrace u64 arch_counter_get_cntpct(void) 158 158 { 159 159 return __arch_counter_get_cntpct(); 160 160 } 161 161 162 - static u64 arch_counter_get_cntvct_stable(void) 162 + static notrace u64 arch_counter_get_cntvct_stable(void) 163 163 { 164 164 return __arch_counter_get_cntvct_stable(); 165 165 } 166 166 167 - static u64 arch_counter_get_cntvct(void) 167 + static notrace u64 arch_counter_get_cntvct(void) 168 168 { 169 169 return __arch_counter_get_cntvct(); 170 170 }
+1 -1
drivers/clocksource/timer-ti-dm.c
··· 896 896 return ret; 897 897 } 898 898 899 - const static struct omap_dm_timer_ops dmtimer_ops = { 899 + static const struct omap_dm_timer_ops dmtimer_ops = { 900 900 .request_by_node = omap_dm_timer_request_by_node, 901 901 .request_specific = omap_dm_timer_request_specific, 902 902 .request = omap_dm_timer_request,
+3 -2
kernel/time/timekeeping.c
··· 808 808 struct timekeeper *tk = &tk_core.timekeeper; 809 809 unsigned int seq; 810 810 ktime_t base, *offset = offsets[offs]; 811 + u64 nsecs; 811 812 812 813 WARN_ON(timekeeping_suspended); 813 814 814 815 do { 815 816 seq = read_seqcount_begin(&tk_core.seq); 816 817 base = ktime_add(tk->tkr_mono.base, *offset); 818 + nsecs = tk->tkr_mono.xtime_nsec >> tk->tkr_mono.shift; 817 819 818 820 } while (read_seqcount_retry(&tk_core.seq, seq)); 819 821 820 - return base; 821 - 822 + return base + nsecs; 822 823 } 823 824 EXPORT_SYMBOL_GPL(ktime_get_coarse_with_offset); 824 825