Am 6. April 2025 00:12:47 MESZ schrieb Simon Glass <s...@chromium.org>:
>This removal should be the last thing done, so that U-Boot does no more
>memory allocations afterwards. Move it and add a comment.
>
>Note that the TCG2 log is updated after this call, but I cannot see any
>allocations there.
>
>Reported-by: Christian Kohlschütter <christ...@kohlschutter.com>

This commit message fails to describe which problem has been observed and you 
try to solve.

A link to the original communication would be helpful.

Furthermore, please, rebase it on my patch adding eth_halt().
<https://lore.kernel.org/u-boot/CAFLszTgp38yBXnSigfT-mEFU=rqyAKjp0WBQGgHP_N3vRxCq=q...@mail.gmail.com/T/#m1e55cc094f575797da3b4aed6b369544f8d6f8f4>

Best regards

Heinrich

>
>Signed-off-by: Simon Glass <s...@chromium.org>
>---
>
> lib/efi_loader/efi_boottime.c | 21 +++++++++++++--------
> 1 file changed, 13 insertions(+), 8 deletions(-)
>
>diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
>index ffe43accd1e..e525662f82f 100644
>--- a/lib/efi_loader/efi_boottime.c
>+++ b/lib/efi_loader/efi_boottime.c
>@@ -2250,14 +2250,6 @@ static efi_status_t EFIAPI 
>efi_exit_boot_services(efi_handle_t image_handle,
>                       list_del(&evt->link);
>       }
> 
>-      if (!efi_st_keep_devices) {
>-              bootm_disable_interrupts();
>-              if (IS_ENABLED(CONFIG_USB_DEVICE))
>-                      udc_disconnect();
>-              board_quiesce_devices();
>-              dm_remove_devices_active();
>-      }
>-
>       /* Patch out unsupported runtime function */
>       efi_runtime_detach();
> 
>@@ -2279,6 +2271,19 @@ static efi_status_t EFIAPI 
>efi_exit_boot_services(efi_handle_t image_handle,
>       /* Give the payload some time to boot */
>       efi_set_watchdog(0);
>       schedule();
>+
>+      /*
>+       * this should be the last thing done, to avoid memory allocations
>+       * between removing devices and the OS taking over
>+       */
>+      if (!efi_st_keep_devices) {
>+              bootm_disable_interrupts();
>+              if (IS_ENABLED(CONFIG_USB_DEVICE))
>+                      udc_disconnect();
>+              board_quiesce_devices();
>+              dm_remove_devices_active();
>+      }
>+
> out:
>       if (IS_ENABLED(CONFIG_EFI_TCG2_PROTOCOL)) {
>               if (ret != EFI_SUCCESS)

Reply via email to