[ros-dev] Re: [ros-diffs] [weiden] 20864: make the initial kernel_stack large enough to have enough space for the fx savings area

Hartmut Birr osexpert at googlemail.com
Sun Jan 15 09:40:27 CET 2006


weiden at svn.reactos.org wrote:
> make the initial kernel_stack large enough to have enough space for the fx savings area
> Modified: trunk/reactos/ntoskrnl/ke/i386/main_asm.S
> Modified: trunk/reactos/ntoskrnl/ke/i386/thread.c
> Modified: trunk/reactos/ntoskrnl/ke/main.c
>   
> ------------------------------------------------------------------------
> *Modified: trunk/reactos/ntoskrnl/ke/i386/main_asm.S*
> --- trunk/reactos/ntoskrnl/ke/i386/main_asm.S	2006-01-14 19:45:50 UTC (rev 20863)
> +++ trunk/reactos/ntoskrnl/ke/i386/main_asm.S	2006-01-14 20:36:01 UTC (rev 20864)
> @@ -35,7 +35,7 @@
>  .m1:     
>      /* Load the initial kernel stack */
>      lea _kernel_stack, %eax
>   
> -    add $0x1000, %eax
>   
> +    add $0x2000, %eax
>   
>      and $0xFFFFE000, %eax
>      add $(0x3000 - SIZEOF_FX_SAVE_AREA), %eax
>      movl %eax, %esp
>   
> ------------------------------------------------------------------------
I think the change in all 3 files is wrong. There was a bug in
main_asm.S. The code to align the stack must be:

.m1:
        lea _kernel_stack, %eax
        test $0xFFF, %eax
        jz .m2
        and $0xFFFFF000, %eax
        add $0x1000, %eax
.m2:
        add $(0x3000 - SIZEOF_FX_SAVE_AREA),  %eax       
        movl %eax, %esp

- Hartmut


More information about the Ros-dev mailing list