diff options
Diffstat (limited to 'kernel/time/ntp.c')
| -rw-r--r-- | kernel/time/ntp.c | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c index 70b33abcc7b..b7fbadc5c97 100644 --- a/kernel/time/ntp.c +++ b/kernel/time/ntp.c @@ -409,7 +409,9 @@ int second_overflow(unsigned long secs)  			time_state = TIME_DEL;  		break;  	case TIME_INS: -		if (secs % 86400 == 0) { +		if (!(time_status & STA_INS)) +			time_state = TIME_OK; +		else if (secs % 86400 == 0) {  			leap = -1;  			time_state = TIME_OOP;  			time_tai++; @@ -418,7 +420,9 @@ int second_overflow(unsigned long secs)  		}  		break;  	case TIME_DEL: -		if ((secs + 1) % 86400 == 0) { +		if (!(time_status & STA_DEL)) +			time_state = TIME_OK; +		else if ((secs + 1) % 86400 == 0) {  			leap = 1;  			time_tai--;  			time_state = TIME_WAIT;  |