80 lines
2.1 KiB
Diff
80 lines
2.1 KiB
Diff
|
From 5830b799beba758141525b5af8c56d91fa436040 Mon Sep 17 00:00:00 2001
|
||
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||
|
Date: Fri, 2 Mar 2018 11:37:57 +0100
|
||
|
Subject: [PATCH 356/365] 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>
|
||
|
---
|
||
|
kernel/time/ntp.c | 26 --------------------------
|
||
|
1 file changed, 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) { }
|
||
|
--
|
||
|
2.28.0
|
||
|
|