Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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 small set of timer fixes:

- Evaluate the -ETIME condition correctly in the imx tpm driver

- Fix the evaluation order of a condition in posix cpu timers

- Use pr_cont() in the clockevents code to prevent ugly message
splitting

- Remove __current_kernel_time() which is now unused to prevent that
new users show up.

- Remove a stale forward declaration"

* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
clocksource/imx-tpm: Correct -ETIME return condition check
posix-cpu-timers: Ensure set_process_cpu_timer is always evaluated
timekeeping: Remove __current_kernel_time()
timers: Remove stale struct tvec_base forward declaration
clockevents: Fix kernel messages split across multiple lines

+9 -20
+1 -1
drivers/clocksource/timer-imx-tpm.c
··· 114 114 * of writing CNT registers which may cause the min_delta event got 115 115 * missed, so we need add a ETIME check here in case it happened. 116 116 */ 117 - return (int)((next - now) <= 0) ? -ETIME : 0; 117 + return (int)(next - now) <= 0 ? -ETIME : 0; 118 118 } 119 119 120 120 static int tpm_set_state_oneshot(struct clock_event_device *evt)
-3
include/linux/timekeeping32.h
··· 9 9 extern void do_gettimeofday(struct timeval *tv); 10 10 unsigned long get_seconds(void); 11 11 12 - /* does not take xtime_lock */ 13 - struct timespec __current_kernel_time(void); 14 - 15 12 static inline struct timespec current_kernel_time(void) 16 13 { 17 14 struct timespec64 now = current_kernel_time64();
-2
include/linux/timer.h
··· 8 8 #include <linux/debugobjects.h> 9 9 #include <linux/stringify.h> 10 10 11 - struct tvec_base; 12 - 13 11 struct timer_list { 14 12 /* 15 13 * All fields that change during normal runtime grouped to the
+3 -1
kernel/time/posix-cpu-timers.c
··· 1205 1205 u64 *newval, u64 *oldval) 1206 1206 { 1207 1207 u64 now; 1208 + int ret; 1208 1209 1209 1210 WARN_ON_ONCE(clock_idx == CPUCLOCK_SCHED); 1211 + ret = cpu_timer_sample_group(clock_idx, tsk, &now); 1210 1212 1211 - if (oldval && cpu_timer_sample_group(clock_idx, tsk, &now) != -EINVAL) { 1213 + if (oldval && ret != -EINVAL) { 1212 1214 /* 1213 1215 * We are setting itimer. The *oldval is absolute and we update 1214 1216 * it to be relative, *newval argument is relative and we update
+5 -6
kernel/time/tick-oneshot.c
··· 82 82 if (!dev || !(dev->features & CLOCK_EVT_FEAT_ONESHOT) || 83 83 !tick_device_is_functional(dev)) { 84 84 85 - printk(KERN_INFO "Clockevents: " 86 - "could not switch to one-shot mode:"); 85 + pr_info("Clockevents: could not switch to one-shot mode:"); 87 86 if (!dev) { 88 - printk(" no tick device\n"); 87 + pr_cont(" no tick device\n"); 89 88 } else { 90 89 if (!tick_device_is_functional(dev)) 91 - printk(" %s is not functional.\n", dev->name); 90 + pr_cont(" %s is not functional.\n", dev->name); 92 91 else 93 - printk(" %s does not support one-shot mode.\n", 94 - dev->name); 92 + pr_cont(" %s does not support one-shot mode.\n", 93 + dev->name); 95 94 } 96 95 return -EINVAL; 97 96 }
-7
kernel/time/timekeeping.c
··· 2139 2139 } 2140 2140 EXPORT_SYMBOL(get_seconds); 2141 2141 2142 - struct timespec __current_kernel_time(void) 2143 - { 2144 - struct timekeeper *tk = &tk_core.timekeeper; 2145 - 2146 - return timespec64_to_timespec(tk_xtime(tk)); 2147 - } 2148 - 2149 2142 struct timespec64 current_kernel_time64(void) 2150 2143 { 2151 2144 struct timekeeper *tk = &tk_core.timekeeper;