aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorJohn Stultz <john.stultz@linaro.org>2013-03-22 15:08:52 -0400
committerJohn Stultz <john.stultz@linaro.org>2013-04-04 16:18:14 -0400
commite4085693f629ded8ac8c35b5cdd324d20242990b (patch)
tree757707d15089ed0386b7f25bfa019cdfe9b44024 /kernel
parentaa6f9c595d857328e5d815e5b94c0e7cd31a6b59 (diff)
ntp: Move timex validation to timekeeping do_adjtimex call.
Move logic that does not need the ntp state to be done in the timekeeping do_adjtimex() call. Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Richard Cochran <richardcochran@gmail.com> Cc: Prarit Bhargava <prarit@redhat.com> Signed-off-by: John Stultz <john.stultz@linaro.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/time/ntp.c5
-rw-r--r--kernel/time/ntp_internal.h1
-rw-r--r--kernel/time/timekeeping.c7
3 files changed, 8 insertions, 5 deletions
diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
index 8b107068d7e3..2dc60c6fe76b 100644
--- a/kernel/time/ntp.c
+++ b/kernel/time/ntp.c
@@ -668,11 +668,6 @@ int __do_adjtimex(struct timex *txc)
668 u32 time_tai, orig_tai; 668 u32 time_tai, orig_tai;
669 int result; 669 int result;
670 670
671 /* Validate the data before disabling interrupts */
672 result = ntp_validate_timex(txc);
673 if (result)
674 return result;
675
676 if (txc->modes & ADJ_SETOFFSET) { 671 if (txc->modes & ADJ_SETOFFSET) {
677 struct timespec delta; 672 struct timespec delta;
678 delta.tv_sec = txc->time.tv_sec; 673 delta.tv_sec = txc->time.tv_sec;
diff --git a/kernel/time/ntp_internal.h b/kernel/time/ntp_internal.h
index fdee80cb34f3..a2a397659e46 100644
--- a/kernel/time/ntp_internal.h
+++ b/kernel/time/ntp_internal.h
@@ -6,6 +6,7 @@ extern void ntp_clear(void);
6/* Returns how long ticks are at present, in ns / 2^NTP_SCALE_SHIFT. */ 6/* Returns how long ticks are at present, in ns / 2^NTP_SCALE_SHIFT. */
7extern u64 ntp_tick_length(void); 7extern u64 ntp_tick_length(void);
8extern int second_overflow(unsigned long secs); 8extern int second_overflow(unsigned long secs);
9extern int ntp_validate_timex(struct timex *);
9extern int __do_adjtimex(struct timex *); 10extern int __do_adjtimex(struct timex *);
10extern void __hardpps(const struct timespec *, const struct timespec *); 11extern void __hardpps(const struct timespec *, const struct timespec *);
11#endif /* _LINUX_NTP_INTERNAL_H */ 12#endif /* _LINUX_NTP_INTERNAL_H */
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index a138ec2cde3e..f6c8a7279157 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -1618,6 +1618,13 @@ EXPORT_SYMBOL_GPL(ktime_get_monotonic_offset);
1618 */ 1618 */
1619int do_adjtimex(struct timex *txc) 1619int do_adjtimex(struct timex *txc)
1620{ 1620{
1621 int ret;
1622
1623 /* Validate the data before disabling interrupts */
1624 ret = ntp_validate_timex(txc);
1625 if (ret)
1626 return ret;
1627
1621 return __do_adjtimex(txc); 1628 return __do_adjtimex(txc);
1622} 1629}
1623 1630