From: Fan Du <fan.du@windriver.com>
To: <tglx@linutronix.de>, <davem@davemloft.net>,
<steffen.klassert@secunet.com>
Cc: <herbert@gondor.hengli.com.au>, <dborkman@redhat.com>,
<netdev@vger.kernel.org>
Subject: [PATCH 1/3] hrtimer: Add notifer when clock_was_set was called
Date: Thu, 15 Aug 2013 15:50:41 +0800 [thread overview]
Message-ID: <1376553043-19007-2-git-send-email-fan.du@windriver.com> (raw)
In-Reply-To: <1376553043-19007-1-git-send-email-fan.du@windriver.com>
When clock_was_set is called in case of system wall time change
or host resume from suspend state, use this notifier for places
where interested in this action, e.g Ipsec SA lifetime management.
Signed-off-by: Fan Du <fan.du@windriver.com>
v3:
-Beautify notifier with register/unregister API exported for other subsystem.
---
include/linux/hrtimer.h | 3 +++
kernel/hrtimer.c | 19 +++++++++++++++++++
2 files changed, 22 insertions(+)
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index d19a5c2..f0404e4 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -461,4 +461,7 @@ extern u64 ktime_divns(const ktime_t kt, s64 div);
/* Show pending timers: */
extern void sysrq_timer_list_show(void);
+extern int register_clock_change_notifier(struct notifier_block *nb);
+extern int unregister_clock_change_notifier(struct notifier_block *nb);
+
#endif
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
index 383319b..c6e6405 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
@@ -755,6 +755,24 @@ static inline void retrigger_next_event(void *arg) { }
#endif /* CONFIG_HIGH_RES_TIMERS */
+static ATOMIC_NOTIFIER_HEAD(clock_change_notifier_list);
+static int call_clock_change_notifiers(void)
+{
+ return atomic_notifier_call_chain(&clock_change_notifier_list, 0, 0);
+}
+
+int register_clock_change_notifier(struct notifier_block *nb)
+{
+ return atomic_notifier_chain_register(&clock_change_notifier_list, nb);
+}
+EXPORT_SYMBOL_GPL(register_clock_change_notifier);
+
+int unregister_clock_change_notifier(struct notifier_block *nb)
+{
+ return atomic_notifier_chain_unregister(&clock_change_notifier_list, nb);
+}
+EXPORT_SYMBOL_GPL(unregister_clock_change_notifier);
+
/*
* Clock realtime was set
*
@@ -773,6 +791,7 @@ void clock_was_set(void)
on_each_cpu(retrigger_next_event, NULL, 1);
#endif
timerfd_clock_was_set();
+ call_clock_change_notifiers();
}
/*
--
1.7.9.5
next prev parent reply other threads:[~2013-08-15 7:51 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-15 7:50 [PATCHv3 net-next 0/3] xfrm: Refactor xfrm_state timer management Fan Du
2013-08-15 7:50 ` Fan Du [this message]
2013-08-15 7:50 ` [PATCH 2/3] xfrm: Update xfrm_state lifetime expire after clock_was_set Fan Du
2013-08-15 7:50 ` [PATCH 3/3] xfrm: Revert "Fix unexpected SA hard expiration after changing date" Fan Du
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1376553043-19007-2-git-send-email-fan.du@windriver.com \
--to=fan.du@windriver.com \
--cc=davem@davemloft.net \
--cc=dborkman@redhat.com \
--cc=herbert@gondor.hengli.com.au \
--cc=netdev@vger.kernel.org \
--cc=steffen.klassert@secunet.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).