Re: adjtimex/ppskit

Ulrich Windl (Ulrich.Windl@rz.uni-regensburg.de)
Mon, 09 Dec 2002 09:07:35 +0100


On 7 Dec 2002 at 15:14, Kurt Roeckx wrote:

> I have this problem with the ntp/adjtimex. Ntpd sets the freq
> field to a value outside the valid range. According to Dave
> Mills, the kernel is supposed to clamp the frequency. I see that
> in the PPSkit this is done properly ...
>
> Would it be possible to integrate the PPSkit in the kernel soon?
>
> If not, could you atleast get parts of it in the kernel, so it
> works correctly with ntpd?

I see: The code used in v2.4.10 of the kernel reads like this:

if (txc->modes & ADJ_FREQUENCY) { /* p. 22 */
if (txc->freq > MAXFREQ || txc->freq < -MAXFREQ) {
result = -EINVAL;
goto leave;
}
time_freq = txc->freq - pps_freq;
}

The PPSkit code reads like this:

if (txc->modes & MOD_FREQUENCY) { /* p. 22 */
long freq; /* frequency ns/s) */
freq = txc->freq / SCALE_PPM;
if (freq > MAXFREQ) {
result = -EINVAL;
freq = MAXFREQ;
} else if (freq < -MAXFREQ) {
result = -EINVAL;
freq = -MAXFREQ;
}
L_LINT(time_freq, freq);
#ifdef CONFIG_NTP_PPS
pps.freq = time_freq;
#endif

(So just limit the argument in addition to returning -EINVAL; the other
differences are because of the modified clock model and nanoseconds)

Returning "-EINVAL" is a subject to discussion, so it could be left out.
I don't have the time to make a proper patch at the moment, but I think
everyone could fix it until a proper patch is available.

Regards,
Ulrich

>
>
> Kurt
>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/