
On Mon, Apr 08, 2019 at 12:05:16AM +0200, Heinrich Schuchardt wrote:
We should not install the HII protocols on every loaded image. It is sufficient to install them once on the root node.
First time I submitted HII patch, we didn't have root node :) Anyhow, why not use efi_install_multiple_protocol_interfaces()? It would make the code smart.
Thanks, -Takahiro Akashi
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
lib/efi_loader/efi_boottime.c | 20 -------------------- lib/efi_loader/efi_root_node.c | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index b215bd7723..31d11b8678 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -1569,26 +1569,6 @@ efi_status_t efi_setup_loaded_image(struct efi_device_path *device_path, if (ret != EFI_SUCCESS) goto failure;
-#if CONFIG_IS_ENABLED(EFI_LOADER_HII)
- ret = efi_add_protocol(&obj->header,
&efi_guid_hii_string_protocol,
(void *)&efi_hii_string);
- if (ret != EFI_SUCCESS)
goto failure;
- ret = efi_add_protocol(&obj->header,
&efi_guid_hii_database_protocol,
(void *)&efi_hii_database);
- if (ret != EFI_SUCCESS)
goto failure;
- ret = efi_add_protocol(&obj->header,
&efi_guid_hii_config_routing_protocol,
(void *)&efi_hii_config_routing);
- if (ret != EFI_SUCCESS)
goto failure;
-#endif
- *info_ptr = info; *handle_ptr = obj;
diff --git a/lib/efi_loader/efi_root_node.c b/lib/efi_loader/efi_root_node.c index b056ba3ee8..b58d9d8c96 100644 --- a/lib/efi_loader/efi_root_node.c +++ b/lib/efi_loader/efi_root_node.c @@ -74,6 +74,26 @@ efi_status_t efi_root_node_register(void) if (ret != EFI_SUCCESS) goto failure;
+#if CONFIG_IS_ENABLED(EFI_LOADER_HII)
- /* Install HII string protocol */
- ret = efi_add_protocol(root, &efi_guid_hii_string_protocol,
(void *)&efi_hii_string);
- if (ret != EFI_SUCCESS)
goto failure;
- /* Install HII database protocol */
- ret = efi_add_protocol(root, &efi_guid_hii_database_protocol,
(void *)&efi_hii_database);
- if (ret != EFI_SUCCESS)
goto failure;
- /* Install HII configuration routing protocol */
- ret = efi_add_protocol(root, &efi_guid_hii_config_routing_protocol,
(void *)&efi_hii_config_routing);
- if (ret != EFI_SUCCESS)
goto failure;
+#endif
failure: return ret; } -- 2.20.1