From mboxrd@z Thu Jan 1 00:00:00 1970 From: AKASHI Takahiro Date: Fri, 12 Apr 2019 11:21:09 +0900 Subject: [U-Boot] [PATCH 1/1] efi_loader: assign HII protocols to root node In-Reply-To: <20190407220516.8767-1-xypron.glpk@gmx.de> References: <20190407220516.8767-1-xypron.glpk@gmx.de> Message-ID: <20190412022053.GE7158@linaro.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > --- > 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 >