summaryrefslogtreecommitdiff
path: root/src/core/manager.c
diff options
context:
space:
mode:
authorZachary Cook <zachcook1991@gmail.com>2013-05-13 18:00:37 -0400
committerTom Gundersen <teg@jklm.no>2013-05-29 15:36:05 +0200
commit4f8d551ff0177df87fae6cb970471186a422d064 (patch)
tree5e6be315cf637c11b338a89913bc7685661cfdc5 /src/core/manager.c
parent832d16a616597f8b29645445f8be4284ee7ae1c0 (diff)
systemd: record efi timestamps after /sys is mounted
This partially reverts commit c3a170f3, which moved efi_get_boot_timestamps too early in main(), before /sys is assured to be mounted Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64371 [tomegun: in particular /sys/firmware/efi/efivars needs to be mounted, which is not a problem if a systemd-initramfs containing the correct module is being used. But not everyone uses an initramfs...]
Diffstat (limited to 'src/core/manager.c')
-rw-r--r--src/core/manager.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/manager.c b/src/core/manager.c
index 0508628b21..a7cfe57038 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -70,6 +70,7 @@
#include "cgroup-util.h"
#include "path-util.h"
#include "audit-fd.h"
+#include "efivars.h"
#include "env-util.h"
/* As soon as 16 units are in our GC queue, make sure to run a gc sweep */
@@ -439,6 +440,11 @@ int manager_new(SystemdRunningAs running_as, Manager **_m) {
if (!m)
return -ENOMEM;
+#ifdef ENABLE_EFI
+ if (detect_container(NULL) <= 0)
+ efi_get_boot_timestamps(&m->userspace_timestamp, &m->firmware_timestamp, &m->loader_timestamp);
+#endif
+
m->running_as = running_as;
m->name_data_slot = m->conn_data_slot = m->subscribed_data_slot = -1;
m->exit_code = _MANAGER_EXIT_CODE_INVALID;