diff --git a/xtoskrnl/ar/i686/archsup.S b/xtoskrnl/ar/i686/archsup.S index fd36c15..2b5e33a 100644 --- a/xtoskrnl/ar/i686/archsup.S +++ b/xtoskrnl/ar/i686/archsup.S @@ -254,13 +254,16 @@ _ArStartApplicationProcessor: movw %ax, %ds movw %ax, %es movw %ax, %ss - movw $0x1000, %sp /* Calculate absolute physical base address */ xorl %ebx, %ebx movw %cs, %bx shll $4, %ebx + /* Set up a temporary stack for the AP initialization */ + movl %ebx, %esp + addl $0x1000, %esp + /* Load the temporary Global Descriptor Table */ leal (ApTemporaryGdtDesc - _ArStartApplicationProcessor)(%ebx), %eax movl %eax, (ApTemporaryGdtBase - _ArStartApplicationProcessor)