* kern/i386/loader.S (grub_multiboot2_real_boot)
[GRUB_MACHINE_IEEE1275]: Copy `grub_ieee1275_entry_fn' handler to %edx.
Avoid calling grub_dl_unload_all() or grub_stop_floppy(), since
grub_dl_unload_all() is not usable at this point.
diff -ur grub2/kern/i386/loader.S tmp/kern/i386/loader.S
--- grub2/kern/i386/loader.S 2008-01-05 13:14:05.000000000 +0100
+++ tmp/kern/i386/loader.S 2008-01-23 21:12:14.000000000 +0100
@@ -16,6 +16,7 @@
* along with GRUB. If not, see .
*/
+#include
/*
* Note: These functions defined in this file may be called from C.
@@ -151,9 +152,13 @@
/* Move the address of the multiboot information structure to ebx. */
movl %edx,%ebx
+#ifdef GRUB_MACHINE_IEEE1275
+ movl EXT_C(grub_ieee1275_entry_fn), %edx
+#else
/* Unload all modules and stop the floppy driver. */
call EXT_C(grub_dl_unload_all)
call EXT_C(grub_stop_floppy)
+#endif
/* Interrupts should be disabled. */
cli