systemd: fall back to CLOCK_MONOTONIC
authorLubomir Rintel <lkundrak@v3.sk>
Tue, 15 Mar 2016 11:53:19 +0000 (12:53 +0100)
committerLubomir Rintel <lkundrak@v3.sk>
Tue, 15 Mar 2016 11:53:19 +0000 (12:53 +0100)
https://github.com/systemd/systemd/pull/2843

src/systemd/src/basic/time-util.c

index 56ff48a..5b2b218 100644 (file)
@@ -49,12 +49,15 @@ static clockid_t map_clock_id(clockid_t c) {
         /* Some more exotic archs (s390, ppc, …) lack the "ALARM" flavour of the clocks. Thus, clock_gettime() will
          * fail for them. Since they are essentially the same as their non-ALARM pendants (their only difference is
          * when timers are set on them), let's just map them accordingly. This way, we can get the correct time even on
-         * those archs. */
+         * those archs.
+         *
+         * Also, older kernels don't support CLOCK_BOOTTIME: fall back to CLOCK_MONOTONIC. */
 
         switch (c) {
 
+        case CLOCK_BOOTTIME:
         case CLOCK_BOOTTIME_ALARM:
-                return CLOCK_BOOTTIME;
+                return clock_boottime_or_monotonic ();
 
         case CLOCK_REALTIME_ALARM:
                 return CLOCK_REALTIME;