diff --git a/ChangeLog b/ChangeLog index 548864ee8..5587f95f9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-12-13 Vladimir Serbinenko + + * kern/i386/pc/startup.S (multiboot_entry): Setup stack before calling + anything. + 2009-12-13 Carles Pina i Estany * script/execute.c (grub_script_execute_cmdline): Set grub_errno to diff --git a/kern/i386/pc/startup.S b/kern/i386/pc/startup.S index 87365c0ed..4de14a3d1 100644 --- a/kern/i386/pc/startup.S +++ b/kern/i386/pc/startup.S @@ -146,6 +146,9 @@ multiboot_entry: /* obtain the boot device */ movl 12(%ebx), %edx + movl $GRUB_MEMORY_MACHINE_PROT_STACK, %ebp + movl %ebp, %esp + /* relocate the code */ movl $(GRUB_KERNEL_MACHINE_RAW_SIZE + 0x200), %ecx addl EXT_C(grub_compressed_size) - _start + 0x100000 + 0x200, %ecx