diff --git a/ChangeLog b/ChangeLog index b0bed2c37..9b7caa65c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2012-03-08 Vladimir Serbinenko + + * grub-core/boot/i386/pc/startup_raw.S (multiboot_trampoline): Fix + size calculation. + * grub-core/kern/i386/realmode.S (realidt): Assume default BIOS IDT if + none is known. + 2012-03-08 Vladimir Serbinenko * grub-core/net/net.c (grub_net_addr_to_str): Don't translate diff --git a/grub-core/boot/i386/pc/startup_raw.S b/grub-core/boot/i386/pc/startup_raw.S index 952cd814a..2147ddeaf 100644 --- a/grub-core/boot/i386/pc/startup_raw.S +++ b/grub-core/boot/i386/pc/startup_raw.S @@ -303,7 +303,7 @@ multiboot_entry: movl %ebp, %esp /* relocate the code */ - movl $(LOCAL(decompressor_end) + 0x200), %ecx + movl $(LOCAL(decompressor_end) - _start + 0x200), %ecx addl LOCAL(compressed_size) - _start + 0x100000 + 0x200, %ecx movl $0x100000, %esi movl $GRUB_BOOT_MACHINE_KERNEL_ADDR, %edi diff --git a/grub-core/kern/i386/realmode.S b/grub-core/kern/i386/realmode.S index 0b6190337..6403b9699 100644 --- a/grub-core/kern/i386/realmode.S +++ b/grub-core/kern/i386/realmode.S @@ -117,7 +117,7 @@ gdtdesc: .word 0x27 /* limit */ .long gdt /* addr */ LOCAL(realidt): - .word 0 + .word 0x400 .long 0 protidt: .word 0