diff --git a/clock.c b/clock.c index b0a4de6..5d5ccbf 100644 --- a/clock.c +++ b/clock.c @@ -719,6 +719,10 @@ int clock_poll(struct clock *c) if (EV_ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES == event) lost = 1; port_dispatch(c->port[i], event, 0); + /* Clear any fault after a little while. */ + if (PS_FAULTY == port_state(c->port[i])) { + clock_fault_timeout(c, i, 1); + } } } @@ -728,11 +732,6 @@ int clock_poll(struct clock *c) clock_fault_timeout(c, i, 0); port_dispatch(c->port[i], EV_FAULT_CLEARED, 0); } - - /* Clear any fault after a little while. */ - if (PS_FAULTY == port_state(c->port[i])) { - clock_fault_timeout(c, i, 1); - } } /* Check the UDS port. */