diff --git a/ChangeLog b/ChangeLog index 3b699c412..0db7ea344 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2001-02-08 OKUJI Yoshinori + + * stage2/asm.S [STAGE1_5] (chain_stage2): Save the second sector + of stage2 in %ecx temporarily, and set %ebp to %ecx after + switching to protected mode. I forgot that %ebp is broken by + rot_to_real. Reported by Torvald Riegel + . + 2001-02-08 OKUJI Yoshinori * docs/grub-new.texi: Moved to ... diff --git a/stage2/asm.S b/stage2/asm.S index dc490c137..b555cabbe 100644 --- a/stage2/asm.S +++ b/stage2/asm.S @@ -792,11 +792,13 @@ ENTRY(chain_stage2) movb EXT_C(current_drive), %dl /* set up to pass the second sector of stage2 */ - movl 0xc(%esp), %ebp + movl 0xc(%esp), %ecx call EXT_C(prot_to_real) .code16 + movl %ecx, %ebp + #ifdef ABSOLUTE_WITHOUT_ASTERISK DATA32 ADDR32 ljmp (offset) #else