efi_loader: Make efi_load_capsule_drivers() available even if EFI_CAPSULE_ON_DISK=n
authorMasami Hiramatsu <masami.hiramatsu@linaro.org>
Mon, 21 Mar 2022 13:37:45 +0000 (22:37 +0900)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Sat, 9 Apr 2022 19:06:31 +0000 (21:06 +0200)
Make efi_load_capsule_drivers() available even if EFI_CAPSULE_ON_DISK
is disabled because the caller (efi_init_obj_list()) expects it only
relays on EFI_HAVE_CAPSULE_SUPPORT.

Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>
lib/efi_loader/efi_capsule.c

index f004401..66abc30 100644 (file)
@@ -619,6 +619,36 @@ out:
        return EFI_EXIT(ret);
 }
 
+/**
+ * efi_load_capsule_drivers - initialize capsule drivers
+ *
+ * Generic FMP drivers backed by DFU
+ *
+ * Return:     status code
+ */
+efi_status_t __weak efi_load_capsule_drivers(void)
+{
+       __maybe_unused efi_handle_t handle;
+       efi_status_t ret = EFI_SUCCESS;
+
+       if (IS_ENABLED(CONFIG_EFI_CAPSULE_FIRMWARE_FIT)) {
+               handle = NULL;
+               ret = EFI_CALL(efi_install_multiple_protocol_interfaces(
+                               &handle, &efi_guid_firmware_management_protocol,
+                               &efi_fmp_fit, NULL));
+       }
+
+       if (IS_ENABLED(CONFIG_EFI_CAPSULE_FIRMWARE_RAW)) {
+               handle = NULL;
+               ret = EFI_CALL(efi_install_multiple_protocol_interfaces(
+                               &handle,
+                               &efi_guid_firmware_management_protocol,
+                               &efi_fmp_raw, NULL));
+       }
+
+       return ret;
+}
+
 #ifdef CONFIG_EFI_CAPSULE_ON_DISK
 /**
  * get_dp_device - retrieve a device  path from boot variable
@@ -1015,36 +1045,6 @@ static void efi_capsule_scan_done(void)
 }
 
 /**
- * efi_load_capsule_drivers - initialize capsule drivers
- *
- * Generic FMP drivers backed by DFU
- *
- * Return:     status code
- */
-efi_status_t __weak efi_load_capsule_drivers(void)
-{
-       __maybe_unused efi_handle_t handle;
-       efi_status_t ret = EFI_SUCCESS;
-
-       if (IS_ENABLED(CONFIG_EFI_CAPSULE_FIRMWARE_FIT)) {
-               handle = NULL;
-               ret = EFI_CALL(efi_install_multiple_protocol_interfaces(
-                               &handle, &efi_guid_firmware_management_protocol,
-                               &efi_fmp_fit, NULL));
-       }
-
-       if (IS_ENABLED(CONFIG_EFI_CAPSULE_FIRMWARE_RAW)) {
-               handle = NULL;
-               ret = EFI_CALL(efi_install_multiple_protocol_interfaces(
-                               &handle,
-                               &efi_guid_firmware_management_protocol,
-                               &efi_fmp_raw, NULL));
-       }
-
-       return ret;
-}
-
-/**
  * check_run_capsules() - check whether capsule update should run
  *
  * The spec says OsIndications must be set in order to run the capsule update