* 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