Skip to content

Commit

Permalink
[efi] Report failures to stop the EFI timer tick event
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Jun 20, 2016
1 parent c917687 commit 694c18a
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions src/interface/efi/efi_timer.c
Expand Up @@ -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 */
Expand Down

0 comments on commit 694c18a

Please sign in to comment.