diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2018-03-02 11:37:57 +0100 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2019-11-15 09:24:58 -0500 |
commit | fe063fbb636149116258f83bbfbdb515d36343a9 (patch) | |
tree | 226ffadb4a543e904e292b8ca9ea7a415b42135f | |
parent | 754c8faace00ae111a3a7495fb2f6f88496766cb (diff) | |
download | linux-rt-fe063fbb636149116258f83bbfbdb515d36343a9.tar.gz |
Revert "rt,ntp: Move call to schedule_delayed_work() to helper thread"
I've been looking at this in v3.10-RT where it got in. The patch
description says
|The ntp code for notify_cmos_timer() is called from a hard interrupt
|context.
I see only one caller of ntp_notify_cmos_timer() and that is
do_adjtimex() after "raw_spin_unlock_irqrestore()".
I see a few callers of do_adjtimex() which is SYS_adjtimex() (+compat)
and posix_clock_realtime_adj() which in turn is called by
SYS_clock_adjtime().
Reverting the patch.
Cc: stable-rt@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
(cherry picked from commit 932c5783d4434250a1019f49ae81b80731dfd4cd)
Signed-off-by: Julia Cartwright <julia@ni.com>
-rw-r--r-- | kernel/time/ntp.c | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c index 0b4e2e9792d2..4bdb59604526 100644 --- a/kernel/time/ntp.c +++ b/kernel/time/ntp.c @@ -17,7 +17,6 @@ #include <linux/module.h> #include <linux/rtc.h> #include <linux/math64.h> -#include <linux/swork.h> #include "ntp_internal.h" #include "timekeeping_internal.h" @@ -570,35 +569,10 @@ static void sync_cmos_clock(struct work_struct *work) &sync_cmos_work, timespec64_to_jiffies(&next)); } -#ifdef CONFIG_PREEMPT_RT_FULL - -static void run_clock_set_delay(struct swork_event *event) -{ - queue_delayed_work(system_power_efficient_wq, &sync_cmos_work, 0); -} - -static struct swork_event ntp_cmos_swork; - -void ntp_notify_cmos_timer(void) -{ - swork_queue(&ntp_cmos_swork); -} - -static __init int create_cmos_delay_thread(void) -{ - WARN_ON(swork_get()); - INIT_SWORK(&ntp_cmos_swork, run_clock_set_delay); - return 0; -} -early_initcall(create_cmos_delay_thread); - -#else - void ntp_notify_cmos_timer(void) { queue_delayed_work(system_power_efficient_wq, &sync_cmos_work, 0); } -#endif /* CONFIG_PREEMPT_RT_FULL */ #else void ntp_notify_cmos_timer(void) { } |