Fix thinko in linuxboot.S

The %gs segment that was used was not matching the comments.
I just moved the GDT descriptor on the stack instead.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Paolo Bonzini 2009-12-13 11:36:40 +01:00 committed by Anthony Liguori
parent d46272c774
commit 36ecd7c016
1 changed files with 8 additions and 12 deletions

View File

@ -79,24 +79,20 @@ copy_kernel:
mode, so let's get into 32 bit mode, write the kernel and jump
back again. */
/* Set DS to SS+SP - 0x10, so we can write our GDT descriptor there */
mov %ss, %eax
shl $4, %eax
add %esp, %eax
sub $0x10, %eax
shr $4, %eax
/* Reserve space on the stack for our GDT descriptor. */
mov %esp, %ebp
sub $16, %esp
/* Now create the GDT descriptor */
movw $((3 * 8) - 1), -16(%bp)
mov %cs, %eax
shl $4, %eax
movw $((3 * 8) - 1), %bx
movw %bx, %gs:0
movl $gdt, %ebx
add %eax, %ebx
movl %ebx, %gs:2
addl $gdt, %ebx
movl %ebx, -14(%bp)
/* And load the GDT */
data32 lgdt %gs:0
data32 lgdt -16(%bp)
mov %ebp, %esp
/* Get us to protected mode now */
mov $1, %eax