[Mini-OS] Fix x86 initial stack alignment

This fixes the initial stack alignment for x86, which is required for
current to return a fine NULL instead of a random value or possibly
crash during initialization.

Signed-off-by: Grzegorz Milos <gm281@cam.ac.uk>
Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
This commit is contained in:
Keir Fraser committed 2007-11-23 16:22:13 +00:00
1 parent 255c12e851
commit 8d71c3dfb8
3 files changed
+6 -4

No files matched your search

+2 -2
View File
@@ -45,7 +45,7 @@ union start_info_union start_info_union;
* Just allocate the kernel stack here. SS:ESP is set up to point here
* in head.S.
*/
char stack[8192];
char stack[2*8192];
extern char shared_info[PAGE_SIZE];
@@ -102,7 +102,7 @@ arch_init(start_info_t *si)
void
arch_print_info(void)
{
printk(" stack: %p-%p\n", stack, stack + 8192);
printk(" stack: %p-%p\n", stack, stack + 2*8192);
}
+2 -1
View File
@@ -21,11 +21,12 @@
_start:
cld
lss stack_start,%esp
andl $(~(8192-1)), %esp
push %esi
call start_kernel
stack_start:
.long stack+8192, __KERNEL_SS
.long stack+(2*8192), __KERNEL_SS
/* Unpleasant -- the PTE that maps this page is actually overwritten */
/* to map the real shared-info page! :-) */
+2 -1
View File
@@ -18,11 +18,12 @@
_start:
cld
movq stack_start(%rip),%rsp
andq $(~(8192-1)), %rsp
movq %rsi,%rdi
call start_kernel
stack_start:
.quad stack+8192
.quad stack+(2*8192)
/* Unpleasant -- the PTE that maps this page is actually overwritten */
/* to map the real shared-info page! :-) */
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.