WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] [Mini-OS] Fix x86 initial stack alignment

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [Mini-OS] Fix x86 initial stack alignment
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 23 Nov 2007 13:50:07 -0800
Delivery-date: Fri, 23 Nov 2007 13:50:21 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1195834933 0
# Node ID 75cb82d277bed86861e125f402e991961cd2581f
# Parent  2e05a6173be03cfff6009bcb58d8b5ec0a5e399c
[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@xxxxxxxxx>
Signed-off-by: Samuel Thibault <samuel.thibault@xxxxxxxxxx>
---
 extras/mini-os/arch/x86/setup.c  |    4 ++--
 extras/mini-os/arch/x86/x86_32.S |    3 ++-
 extras/mini-os/arch/x86/x86_64.S |    3 ++-
 3 files changed, 6 insertions(+), 4 deletions(-)

diff -r 2e05a6173be0 -r 75cb82d277be extras/mini-os/arch/x86/setup.c
--- a/extras/mini-os/arch/x86/setup.c   Fri Nov 23 11:58:11 2007 +0000
+++ b/extras/mini-os/arch/x86/setup.c   Fri Nov 23 16:22:13 2007 +0000
@@ -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 @@ void
 void
 arch_print_info(void)
 {
-       printk("  stack:      %p-%p\n", stack, stack + 8192);
+       printk("  stack:      %p-%p\n", stack, stack + 2*8192);
 }
 
 
diff -r 2e05a6173be0 -r 75cb82d277be extras/mini-os/arch/x86/x86_32.S
--- a/extras/mini-os/arch/x86/x86_32.S  Fri Nov 23 11:58:11 2007 +0000
+++ b/extras/mini-os/arch/x86/x86_32.S  Fri Nov 23 16:22:13 2007 +0000
@@ -21,11 +21,12 @@ _start:
 _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! :-)                             */
diff -r 2e05a6173be0 -r 75cb82d277be extras/mini-os/arch/x86/x86_64.S
--- a/extras/mini-os/arch/x86/x86_64.S  Fri Nov 23 11:58:11 2007 +0000
+++ b/extras/mini-os/arch/x86/x86_64.S  Fri Nov 23 16:22:13 2007 +0000
@@ -18,11 +18,12 @@ _start:
 _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! :-)                             */

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [Mini-OS] Fix x86 initial stack alignment, Xen patchbot-unstable <=