From fa370ea61b4ac350472b24a5e28f9233d12d9d26 Mon Sep 17 00:00:00 2001 From: proski Date: Sun, 3 Feb 2008 18:04:36 +0000 Subject: [PATCH] 2008-02-03 Pavel Roskin * a/kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop %edx and %esi from stack only after grub_gate_a20() is called. grub_gate_a20() clobbers %edx. --- ChangeLog | 6 ++++++ kern/i386/pc/startup.S | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index c92168b9d..62ad8d941 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-02-03 Pavel Roskin + + * a/kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop + %edx and %esi from stack only after grub_gate_a20() is called. + grub_gate_a20() clobbers %edx. + 2008-02-03 Yoshinori K. Okuji * configure.ac (AC_INIT): Bumped to 1.96. diff --git a/kern/i386/pc/startup.S b/kern/i386/pc/startup.S index e4101a655..0bfe2b37d 100644 --- a/kern/i386/pc/startup.S +++ b/kern/i386/pc/startup.S @@ -594,16 +594,16 @@ FUNCTION(grub_chainloader_real_boot) call EXT_C(grub_dl_unload_all) + /* Turn off Gate A20 */ + xorl %eax, %eax + call EXT_C(grub_gate_a20) + /* set up to pass boot drive */ popl %edx /* ESI must point to a partition table entry */ popl %esi - /* Turn off Gate A20 */ - xorl %eax, %eax - call EXT_C(grub_gate_a20) - call prot_to_real .code16 ljmp $0, $GRUB_MEMORY_MACHINE_BOOT_LOADER_ADDR