efi_loader: Fix to set bootdev_root correctly if bootdev found
authorMasami Hiramatsu <masami.hiramatsu@linaro.org>
Mon, 12 Jul 2021 09:05:17 +0000 (18:05 +0900)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Mon, 12 Jul 2021 18:38:16 +0000 (20:38 +0200)
Fix find_boot_device() to set bootdev_root if it finds the
bootdev from BootNext. Currently it sets the bootdev_root only
when it finds bootdev from BootOrder.

Fixes: c74cd8bd08d1 ("efi_loader: capsule: add capsule_on_disk support")
Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>
Accked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
lib/efi_loader/efi_capsule.c

index bef9d61..b878e71 100644 (file)
@@ -646,7 +646,7 @@ static efi_status_t find_boot_device(void)
                ret = get_dp_device(boot_var16, &boot_dev);
                if (ret == EFI_SUCCESS) {
                        if (device_is_present_and_system_part(boot_dev)) {
-                               goto out;
+                               goto found;
                        } else {
                                efi_free_pool(boot_dev);
                                boot_dev = NULL;
@@ -689,6 +689,7 @@ skip:
                efi_free_pool(boot_dev);
                boot_dev = NULL;
        }
+found:
        if (boot_dev) {
                u16 *path_str;