ntp_adjtime() returns invalid frequency in Big Sur

The system call ntp_adjtime sets and returns various attributes associated with the NTP phase locked loop in the Darwin kernel via a struct timex argument. The frequency of the the loop is passed back and forward in this struct as a signed fractional number.

In Big Sur, instead of returning a negative number for the frequency when required, ntp_adjtime returns the unsigned representation of the number - i.e. the value is always positive and can be 'off' by 65536.

I have submitted FB8561779, along with a simple test case demonstrating the problem. I hope it will be fixed soon.
ntp_adjtime() returns invalid frequency in Big Sur
 
 
Q