summaryrefslogtreecommitdiffstats
path: root/src/interface
diff options
context:
space:
mode:
Diffstat (limited to 'src/interface')
-rw-r--r--src/interface/efi/efi_timer.c18
1 files 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 */