hwclock: use carefully synchronize_to_clock_tick() return codes

* It seems that

	rtc-isl1208 0-006f: chip found, driver version 0.3
	rtc-isl1208 0-006f: rtc core: registered rtc-isl1208 as rtc0
	rtc-isl1208 0-006f: rtc power failure detected, please set clock.

  causes that hardware clock returns persistent time and synchronization
  is impossible. The hwclock(8) has to ignore this problem and allows to
  set clock anyway.

* synchronize_to_clock_tick() shouldn't to print the "...got clock tick"
  debug message in case of failure.

Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2008-08-09 01:22:08 +02:00
parent e8abdb3150
commit 3b96a7acbc
1 changed files with 8 additions and 3 deletions

View File

@ -352,7 +352,12 @@ synchronize_to_clock_tick(void) {
rc = ur->synchronize_to_clock_tick();
if (debug) printf(_("...got clock tick\n"));
if (debug) {
if (rc)
printf(_("...synchronization failed\n"));
else
printf(_("...got clock tick\n"));
}
return rc;
}
@ -1093,8 +1098,8 @@ manipulate_clock(const bool show, const bool adjust, const bool noadjfile,
if (show || adjust || hctosys || !noadjfile) {
/* data from HW-clock are required */
rc = synchronize_to_clock_tick();
if (rc)
return EX_IOERR;
if (rc && rc != 2) /* 2= synchronization timeout */
return EX_IOERR;
gettimeofday(&read_time, NULL);
rc = read_hardware_clock(universal, &hclock_valid, &hclocktime);
if (rc)