efi_loader: log messages for bootefi command
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Tue, 25 Aug 2020 17:54:05 +0000 (17:54 +0000)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Sun, 6 Sep 2020 19:21:41 +0000 (21:21 +0200)
Write log messages when booting via the bootefi command to allow tracking
on the syslog server. Example messages are

    Booting /snp.efi

or

    Booting /MemoryMapped(0x0,0x4fe00000,0x35a40)
    Loading image failed

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
cmd/bootefi.c

index 06563d2..40d5ef2 100644 (file)
@@ -433,7 +433,9 @@ efi_status_t efi_run_image(void *source_buffer, efi_uintn_t source_size)
 {
        efi_handle_t mem_handle = NULL, handle;
        struct efi_device_path *file_path = NULL;
+       struct efi_device_path *msg_path;
        efi_status_t ret;
+       u16 *load_options;
 
        if (!bootefi_device_path || !bootefi_image_path) {
                /*
@@ -456,17 +458,21 @@ efi_status_t efi_run_image(void *source_buffer, efi_uintn_t source_size)
                                       file_path);
                if (ret != EFI_SUCCESS)
                        goto out;
+               msg_path = file_path;
        } else {
                file_path = efi_dp_append(bootefi_device_path,
                                          bootefi_image_path);
+               msg_path = bootefi_image_path;
        }
 
+       log_info("Booting %pD\n", msg_path);
+
        ret = EFI_CALL(efi_load_image(false, efi_root, file_path, source_buffer,
                                      source_size, &handle));
-       if (ret != EFI_SUCCESS)
+       if (ret != EFI_SUCCESS) {
+               log_err("Loading image failed\n");
                goto out;
-
-       u16 *load_options;
+       }
 
        /* Transfer environment variable as load options */
        ret = efi_env_set_load_options(handle, "bootargs", &load_options);