mirror of
https://github.com/ipxe/ipxe
synced 2025-12-08 18:30:28 +03:00
[efi] Do not attempt to use console output after ExitBootServices()
A successful call to ExitBootServices() will result in the EFI console becoming unusable. Ensure that the EFI wrapper produces a complete line of debug output before calling the wrapped ExitBootServices() method, and attempt subsequent debug output only if the call fails. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -735,11 +735,14 @@ efi_exit_boot_services_wrapper ( EFI_HANDLE image_handle, UINTN map_key ) {
|
||||
void *retaddr = __builtin_return_address ( 0 );
|
||||
EFI_STATUS efirc;
|
||||
|
||||
DBGC ( colour, "ExitBootServices ( %s, %#llx ) ",
|
||||
DBGC ( colour, "ExitBootServices ( %s, %#llx ) -> %p\n",
|
||||
efi_handle_name ( image_handle ),
|
||||
( ( unsigned long long ) map_key ) );
|
||||
( ( unsigned long long ) map_key ), retaddr );
|
||||
efirc = bs->ExitBootServices ( image_handle, map_key );
|
||||
DBGC ( colour, "= %s -> %p\n", efi_status ( efirc ), retaddr );
|
||||
if ( efirc != 0 ) {
|
||||
DBGC ( colour, "ExitBootServices ( ... ) = %s -> %p\n",
|
||||
efi_status ( efirc ), retaddr );
|
||||
}
|
||||
return efirc;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user