From 694c18addc0dfdf51369f6d598dd0c8ca4bf2861 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 20 Jun 2016 16:08:17 +0100 Subject: [PATCH] [efi] Report failures to stop the EFI timer tick event Signed-off-by: Michael Brown --- src/interface/efi/efi_timer.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/interface/efi/efi_timer.c b/src/interface/efi/efi_timer.c index a574e204..da064120 100644 --- a/src/interface/efi/efi_timer.c +++ b/src/interface/efi/efi_timer.c @@ -126,13 +126,27 @@ static void efi_tick_startup ( void ) { */ static void efi_tick_shutdown ( int booting __unused ) { EFI_BOOT_SERVICES *bs = efi_systab->BootServices; + EFI_STATUS efirc; + int rc; /* Stop timer tick */ - bs->SetTimer ( efi_tick_event, TimerCancel, 0 ); + if ( ( efirc = bs->SetTimer ( efi_tick_event, TimerCancel, 0 ) ) != 0 ){ + rc = -EEFI ( efirc ); + DBGC ( colour, "EFI could not stop timer tick: %s\n", + strerror ( rc ) ); + /* Self-destruct initiated */ + return; + } DBGC ( colour, "EFI timer stopped\n" ); /* Destroy timer tick event */ - bs->CloseEvent ( efi_tick_event ); + if ( ( efirc = bs->CloseEvent ( efi_tick_event ) ) != 0 ) { + rc = -EEFI ( efirc ); + DBGC ( colour, "EFI could not destroy timer tick: %s\n", + strerror ( rc ) ); + /* Probably non-fatal */ + return; + } } /** Timer tick startup function */