|
|
@@ -43,6 +43,7 @@ static u64 tick_length_base;
|
|
|
#define MAX_TICKADJ 500LL /* usecs */
|
|
|
#define MAX_TICKADJ_SCALED \
|
|
|
(((MAX_TICKADJ * NSEC_PER_USEC) << NTP_SCALE_SHIFT) / NTP_INTERVAL_FREQ)
|
|
|
+#define MAX_TAI_OFFSET 100000
|
|
|
|
|
|
/*
|
|
|
* phase-lock loop variables
|
|
|
@@ -698,7 +699,8 @@ static inline void process_adjtimex_modes(const struct timex *txc, s32 *time_tai
|
|
|
time_constant = max(time_constant, 0l);
|
|
|
}
|
|
|
|
|
|
- if (txc->modes & ADJ_TAI && txc->constant >= 0)
|
|
|
+ if (txc->modes & ADJ_TAI &&
|
|
|
+ txc->constant >= 0 && txc->constant <= MAX_TAI_OFFSET)
|
|
|
*time_tai = txc->constant;
|
|
|
|
|
|
if (txc->modes & ADJ_OFFSET)
|