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)