Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[cascardo/linux.git] / arch / x86 / xen / xen-head.S
index b65f59a..7f8d8ab 100644 (file)
@@ -26,7 +26,7 @@
                      (1 << XENFEAT_auto_translated_physmap) | \
                      (1 << XENFEAT_supervisor_mode_kernel) | \
                      (1 << XENFEAT_hvm_callback_vector))
-/* The XENFEAT_writable_page_tables is not stricly neccessary as we set that
+/* The XENFEAT_writable_page_tables is not stricly necessary as we set that
  * up regardless whether this CONFIG option is enabled or not, but it
  * clarifies what the right flags need to be.
  */
        __INIT
 ENTRY(startup_xen)
        cld
-#ifdef CONFIG_X86_32
-       mov %esi,xen_start_info
-       mov $init_thread_union+THREAD_SIZE,%esp
-#else
-       mov %rsi,xen_start_info
-       mov $init_thread_union+THREAD_SIZE,%rsp
-#endif
+
+       /* Clear .bss */
+       xor %eax,%eax
+       mov $__bss_start, %_ASM_DI
+       mov $__bss_stop, %_ASM_CX
+       sub %_ASM_DI, %_ASM_CX
+       shr $__ASM_SEL(2, 3), %_ASM_CX
+       rep __ASM_SIZE(stos)
+
+       mov %_ASM_SI, xen_start_info
+       mov $init_thread_union+THREAD_SIZE, %_ASM_SP
+
        jmp xen_start_kernel
 
        __FINIT