]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Fix grub_machine_fini bitrot.
authorVladimir Serbinenko <phcoder@gmail.com>
Sun, 10 Nov 2013 12:33:26 +0000 (13:33 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Sun, 10 Nov 2013 12:33:26 +0000 (13:33 +0100)
Reported by: Glenn Washburn.

ChangeLog
grub-core/kern/arm/efi/init.c
grub-core/kern/emu/main.c
grub-core/kern/uboot/init.c
grub-core/lib/efi/halt.c
grub-core/lib/efi/reboot.c
grub-core/lib/uboot/halt.c
grub-core/lib/uboot/reboot.c

index f5ac82686d6802dfb11f6a20cf8291774f57592b..591e1ef1587b357a0a4d261112893e95353f22e2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
 
        * configure.ac: Remove leftover -fnested-funcions -Wl,-allow_execute.
index bcb73518dcd9a49b5f0a35f279a0c4668e2809b3..c83f331bedfb459505b04ced80e23075a7d7ad87 100644 (file)
@@ -57,10 +57,13 @@ grub_machine_init (void)
 }
 
 void
-grub_machine_fini (void)
+grub_machine_fini (int flags)
 {
   grub_efi_boot_services_t *b;
 
+  if (!(flags & GRUB_LOADER_FLAG_NORETURN))
+    return;
+
   b = grub_efi_system_table->boot_services;
 
   efi_call_3 (b->set_timer, tmr_evt, GRUB_EFI_TIMER_PERIODIC, 0);
index 8696e84b91aedb2f2192ac90b44013768a2795d5..94c2902f6cec787232fe99e1211a73082fd1c070 100644 (file)
@@ -225,7 +225,7 @@ main (int argc, char *argv[])
   grub_hostfs_fini ();
   grub_host_fini ();
 
-  grub_machine_fini ();
+  grub_machine_fini (GRUB_LOADER_FLAG_NORETURN);
 
   return 0;
 }
index 4b8c2e2ac667cda27523b6549e9bc4220d750652..b80535d112b460dccfeb90c2a27772638a43347f 100644 (file)
@@ -113,7 +113,7 @@ grub_machine_init (void)
 
 
 void
-grub_machine_fini (void)
+grub_machine_fini (int flags __attribute__ ((unused)))
 {
 }
 
index 3e1ea47f4a3f59d8119eaf9d0df06789ec2bbf40..39f3b31aeef081b3fa0097b3f7ea1944ef31f044 100644 (file)
@@ -27,7 +27,7 @@
 void
 grub_halt (void)
 {
-  grub_machine_fini ();
+  grub_machine_fini (GRUB_LOADER_FLAG_NORETURN);
 #if !defined(__ia64__) && !defined(__arm__)
   grub_acpi_halt ();
 #endif
index 9382370f750917371b5d717b0b3ea5322d7956c2..366d5bb491e996a6b16661ca6831405cd1e588ff 100644 (file)
@@ -25,7 +25,7 @@
 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,
               GRUB_EFI_RESET_COLD, GRUB_EFI_SUCCESS, 0, NULL);
   for (;;) ;
index 9d5a1386d97b75b32025bef8e7033c4836dcdd0c..0d799064538d21c3bb641b92547d28476a454f36 100644 (file)
@@ -23,7 +23,7 @@
 void
 grub_halt (void)
 {
-  grub_machine_fini ();
+  grub_machine_fini (GRUB_LOADER_FLAG_NORETURN);
 
   /* Just stop here */
 
index e5c54d467331941902fd6c55ec79ae94b8c86168..0bdedca1d159a65c23bd478dbad723b026b841df 100644 (file)
@@ -23,7 +23,7 @@
 void
 grub_reboot (void)
 {
-  grub_machine_fini ();
+  grub_machine_fini (GRUB_LOADER_FLAG_NORETURN);
 
   grub_uboot_reset ();
   while (1);