summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2018-03-02 11:37:57 +0100
committerSteven Rostedt <rostedt@goodmis.org>2019-11-15 09:24:58 -0500
commitfe063fbb636149116258f83bbfbdb515d36343a9 (patch)
tree226ffadb4a543e904e292b8ca9ea7a415b42135f
parent754c8faace00ae111a3a7495fb2f6f88496766cb (diff)
downloadlinux-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.c26
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) { }