timekeeping: Prevent false warning when persistent clock is not available
authorPavel Tatashin <pasha.tatashin@oracle.com>
Wed, 25 Jul 2018 20:00:18 +0000 (16:00 -0400)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 30 Jul 2018 17:32:29 +0000 (19:32 +0200)
On arches with no persistent clock a message like this is printed during
boot:

[    0.000000] Persistent clock returned invalid value

The value is not invalid: Zero means that no persistent clock is available
and the absence of persistent clock should be quietly accepted.

Fixes: 3eca993740b8 ("timekeeping: Replace read_boot_clock64() with read_persistent_wall_and_boot_offset()")
Signed-off-by: Pavel Tatashin <pasha.tatashin@oracle.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: steven.sistare@oracle.com
Cc: daniel.m.jordan@oracle.com
Cc: sboyd@kernel.org
Cc: john.stultz@linaro.org
Link: https://lkml.kernel.org/r/20180725200018.23722-1-pasha.tatashin@oracle.com
kernel/time/timekeeping.c

index 30d7f64..6183e74 100644 (file)
@@ -1536,7 +1536,7 @@ void __init timekeeping_init(void)
        if (timespec64_valid_strict(&wall_time) &&
            timespec64_to_ns(&wall_time) > 0) {
                persistent_clock_exists = true;
-       } else {
+       } else if (timespec64_to_ns(&wall_time) != 0) {
                pr_warn("Persistent clock returned invalid value");
                wall_time = (struct timespec64){0};
        }