time: ntp: fix bug in ntp_update_offset() & do_adjtimex(), fix
The time_status conditional was accidentally placed right after we clear the checked time_status bits, which causes us to take the conditional every time through. This fixes it by moving the conditional to before we clear the time_status bits. Signed-off-by: John Stultz <johnstul@us.ibm.com> Cc: Clark Williams <williams@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -365,8 +365,6 @@ static inline void process_adj_status(struct timex *txc, struct timespec *ts)
|
|||||||
time_state = TIME_OK;
|
time_state = TIME_OK;
|
||||||
time_status = STA_UNSYNC;
|
time_status = STA_UNSYNC;
|
||||||
}
|
}
|
||||||
/* only set allowed bits */
|
|
||||||
time_status &= STA_RONLY;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If we turn on PLL adjustments then reset the
|
* If we turn on PLL adjustments then reset the
|
||||||
@@ -375,6 +373,8 @@ static inline void process_adj_status(struct timex *txc, struct timespec *ts)
|
|||||||
if (!(time_status & STA_PLL) && (txc->status & STA_PLL))
|
if (!(time_status & STA_PLL) && (txc->status & STA_PLL))
|
||||||
time_reftime = xtime.tv_sec;
|
time_reftime = xtime.tv_sec;
|
||||||
|
|
||||||
|
/* only set allowed bits */
|
||||||
|
time_status &= STA_RONLY;
|
||||||
time_status |= txc->status & ~STA_RONLY;
|
time_status |= txc->status & ~STA_RONLY;
|
||||||
|
|
||||||
switch (time_state) {
|
switch (time_state) {
|
||||||
|
Reference in New Issue
Block a user