mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
[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:
1 parent
255c12e851
commit
8d71c3dfb8
3 files changed
+6
-4
No files matched your search
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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! :-) */
|
||||
|
||||
@@ -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! :-) */
|
||||
|
||||