diff -up ntp-4.2.4p4/ntpd/cmd_args.c.kernel ntp-4.2.4p4/ntpd/cmd_args.c
--- ntp-4.2.4p4/ntpd/cmd_args.c.kernel 2007-08-18 22:24:43.000000000 +0200
+++ ntp-4.2.4p4/ntpd/cmd_args.c 2008-02-27 16:57:56.000000000 +0100
@@ -179,8 +179,10 @@ getCmdOpts(
} while (--ct > 0);
}
- if (HAVE_OPT( SLEW ))
+ if (HAVE_OPT( SLEW )) {
clock_max = 600;
+ kern_enable = 0;
+ }
if (HAVE_OPT( UPDATEINTERVAL )) {
long val = OPT_VALUE_UPDATEINTERVAL;
diff -up ntp-4.2.4p4/ntpd/ntp_loopfilter.c.kernel ntp-4.2.4p4/ntpd/ntp_loopfilter.c
--- ntp-4.2.4p4/ntpd/ntp_loopfilter.c.kernel 2007-02-24 12:02:05.000000000 +0100
+++ ntp-4.2.4p4/ntpd/ntp_loopfilter.c 2008-02-27 16:57:56.000000000 +0100
@@ -337,8 +337,6 @@ local_clock(
*/
clock_frequency = flladj = plladj = 0;
mu = peer->epoch - sys_clocktime;
- if (clock_max == 0 || clock_max > 0.5)
- kern_enable = 0;
rval = 1;
if (fabs(fp_offset) > clock_max && clock_max > 0) {
switch (state) {
@@ -893,9 +891,9 @@ loop_config(
pll_control = 1;
memset(&ntv, 0, sizeof(ntv));
#ifdef STA_NANO
- ntv.modes = MOD_BITS | MOD_NANO;
+ ntv.modes = MOD_BITS | MOD_FREQUENCY | MOD_NANO;
#else /* STA_NANO */
- ntv.modes = MOD_BITS;
+ ntv.modes = MOD_BITS | MOD_FREQUENCY;
#endif /* STA_NANO */
ntv.maxerror = MAXDISPERSE;
ntv.esterror = MAXDISPERSE;
@@ -1001,6 +999,8 @@ loop_config(
*/
case LOOP_MAX: /* step threshold */
clock_max = freq;
+ if (clock_max == 0 || clock_max > 0.5)
+ kern_enable = 0;
break;
case LOOP_PANIC: /* panic threshold */