Fix grub_machine_fini bitrot.

Reported by: Glenn Washburn.
This commit is contained in:
Vladimir Serbinenko 2013-11-10 13:33:26 +01:00
parent c61471fc8b
commit 33690255c5
8 changed files with 16 additions and 7 deletions

View file

@ -1,3 +1,9 @@
2013-11-10 Vladimir Serbinenko <phcoder@gmail.com>
Fix grub_machine_fini bitrot.
Reported by: Glenn Washburn.
2013-11-10 Vladimir Serbinenko <phcoder@gmail.com> 2013-11-10 Vladimir Serbinenko <phcoder@gmail.com>
* configure.ac: Remove leftover -fnested-funcions -Wl,-allow_execute. * configure.ac: Remove leftover -fnested-funcions -Wl,-allow_execute.

View file

@ -57,10 +57,13 @@ grub_machine_init (void)
} }
void void
grub_machine_fini (void) grub_machine_fini (int flags)
{ {
grub_efi_boot_services_t *b; grub_efi_boot_services_t *b;
if (!(flags & GRUB_LOADER_FLAG_NORETURN))
return;
b = grub_efi_system_table->boot_services; b = grub_efi_system_table->boot_services;
efi_call_3 (b->set_timer, tmr_evt, GRUB_EFI_TIMER_PERIODIC, 0); efi_call_3 (b->set_timer, tmr_evt, GRUB_EFI_TIMER_PERIODIC, 0);

View file

@ -225,7 +225,7 @@ main (int argc, char *argv[])
grub_hostfs_fini (); grub_hostfs_fini ();
grub_host_fini (); grub_host_fini ();
grub_machine_fini (); grub_machine_fini (GRUB_LOADER_FLAG_NORETURN);
return 0; return 0;
} }

View file

@ -113,7 +113,7 @@ grub_machine_init (void)
void void
grub_machine_fini (void) grub_machine_fini (int flags __attribute__ ((unused)))
{ {
} }

View file

@ -27,7 +27,7 @@
void void
grub_halt (void) grub_halt (void)
{ {
grub_machine_fini (); grub_machine_fini (GRUB_LOADER_FLAG_NORETURN);
#if !defined(__ia64__) && !defined(__arm__) #if !defined(__ia64__) && !defined(__arm__)
grub_acpi_halt (); grub_acpi_halt ();
#endif #endif

View file

@ -25,7 +25,7 @@
void void
grub_reboot (void) grub_reboot (void)
{ {
grub_machine_fini (); grub_machine_fini (GRUB_LOADER_FLAG_NORETURN);
efi_call_4 (grub_efi_system_table->runtime_services->reset_system, efi_call_4 (grub_efi_system_table->runtime_services->reset_system,
GRUB_EFI_RESET_COLD, GRUB_EFI_SUCCESS, 0, NULL); GRUB_EFI_RESET_COLD, GRUB_EFI_SUCCESS, 0, NULL);
for (;;) ; for (;;) ;

View file

@ -23,7 +23,7 @@
void void
grub_halt (void) grub_halt (void)
{ {
grub_machine_fini (); grub_machine_fini (GRUB_LOADER_FLAG_NORETURN);
/* Just stop here */ /* Just stop here */

View file

@ -23,7 +23,7 @@
void void
grub_reboot (void) grub_reboot (void)
{ {
grub_machine_fini (); grub_machine_fini (GRUB_LOADER_FLAG_NORETURN);
grub_uboot_reset (); grub_uboot_reset ();
while (1); while (1);