[PATCH 22 of 36] x86_64: split x86_64_start_kernel

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Jeremy Fitzhardinge
Date: Tuesday, June 24, 2008 - 9:19 pm

Split x86_64_start_kernel() into two pieces:

   The first essentially cleans up after head_64.S.  It clears the
   bss, zaps low identity mappings, sets up some early exception
   handlers.

   The second part preserves the boot data, reserves the kernel's
   text/data/bss, pagetables and ramdisk, and then starts the kernel
   proper.

This split is so that Xen can call the second part to do the set up it
needs done.  It doesn't need any of the first part setups, because it
doesn't boot via head_64.S, and its redundant or actively damaging.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>

---
 arch/x86/kernel/head64.c |    5 +++++
 include/asm-x86/setup.h  |    2 ++
 2 files changed, 7 insertions(+)

diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -108,6 +108,11 @@
 
 	early_printk("Kernel really alive\n");
 
+	x86_64_start_reservations(real_mode_data);
+}
+
+void __init x86_64_start_reservations(char *real_mode_data)
+{
 	copy_bootdata(__va(real_mode_data));
 
 	reserve_early(__pa_symbol(&_text), __pa_symbol(&_end), "TEXT DATA BSS");
diff --git a/include/asm-x86/setup.h b/include/asm-x86/setup.h
--- a/include/asm-x86/setup.h
+++ b/include/asm-x86/setup.h
@@ -63,6 +63,8 @@
 
 #else
 void __init x86_64_start_kernel(char *real_mode);
+void __init x86_64_start_reservations(char *real_mode_data);
+
 #endif /* __i386__ */
 #endif /* _SETUP */
 #endif /* __ASSEMBLY__ */


--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 00 of 36] x86/paravirt: groundwork for 64-bit Xen s ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:18 pm)
[PATCH 01 of 36] x86: asm-x86/pgtable.h: fix compiler warning, Jeremy Fitzhardinge, (Tue Jun 24, 9:18 pm)
[PATCH 02 of 36] x86: add memory clobber to save/loadsegment, Jeremy Fitzhardinge, (Tue Jun 24, 9:18 pm)
[PATCH 03 of 36] x86: add memory barriers to wrmsr, Jeremy Fitzhardinge, (Tue Jun 24, 9:18 pm)
[PATCH 04 of 36] x86: remove open-coded save/load segment ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 05 of 36] x86_64: use write_gdt_entry in vsyscall_s ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 06 of 36] x86_64: use p??_populate() to attach page ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 07 of 36] x86_64: unify early_ioremap, Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 08 of 36] x86_64: Add gate_offset() and gate_segmen ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 09 of 36] x86_64: Use __pgd() on mk_kernel_pgd(), Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 10 of 36] x86: unify pgd_index, Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 11 of 36] x86: unify mmu_context.h, Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 12 of 36] x86_64: replace end_pfn with num_physpages, Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 13 of 36] x86_64: add prototype for x86_64_start_ke ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 14 of 36] x86_64: add sync_cmpxchg, Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 15 of 36] x86: simplify vmalloc_sync_all, Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 16 of 36] x86/paravirt: add a pgd_alloc/free hooks, Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 17 of 36] x86: preallocate and prepopulate separately, Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 18 of 36] x86/paravirt: add debugging for missing o ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 19 of 36] paravirt_ops: define PARA_INDIRECT for in ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 20 of 36] paravirt/x86_64: move __PAGE_OFFSET to le ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 21 of 36] x86-64: add FIX_PARAVIRT_BOOTMAP fixmap slot, Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 22 of 36] x86_64: split x86_64_start_kernel, Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 23 of 36] x86_64: adjust mapping of physical pageta ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 24 of 36] x86_64: create small vmemmap mappings if ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 25 of 36] x86_64: PSE no longer a hard requirement, Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 26 of 36] x86_64: Split set_pte_vaddr(), Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 27 of 36] x86_64: __switch_to(): Move arch_leave_la ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 28 of 36] Save %fs and %gs before load_TLS() and ar ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 29 of 36] Use __KERNEL_DS as SS when returning to a ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 30 of 36] x86/paravirt_ops: split sysret and sysexit, Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 31 of 36] x86_64 pvops: don't restore user rsp with ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 32 of 36] Add sysret/sysexit pvops for returning to ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 33 of 36] x86_64: ia32entry: replace privileged ins ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 34 of 36] x86_64: swapgs pvop with a user-stack can ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 35 of 36] x86_64/paravirt: add adjust_exception_frame, Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
[PATCH 36 of 36] x86_64/paravirt: Make load_gs_index() a p ..., Jeremy Fitzhardinge, (Tue Jun 24, 9:19 pm)
Re: [PATCH 03 of 36] x86: add memory barriers to wrmsr, Arjan van de Ven, (Tue Jun 24, 9:44 pm)
Re: [PATCH 00 of 36] x86/paravirt: groundwork for 64-bit X ..., Jeremy Fitzhardinge, (Wed Jun 25, 4:46 am)
Re: [PATCH 36 of 36] x86_64/paravirt: Make load_gs_index() ..., Jeremy Fitzhardinge, (Wed Jun 25, 4:48 am)
Re: [PATCH 00 of 36] x86/paravirt: groundwork for 64-bit X ..., Jeremy Fitzhardinge, (Wed Jun 25, 1:03 pm)
Re: [PATCH 00 of 36] x86/paravirt: groundwork for 64-bit X ..., Jeremy Fitzhardinge, (Wed Jun 25, 1:12 pm)
Re: [PATCH 03 of 36] x86: add memory barriers to wrmsr, Jeremy Fitzhardinge, (Wed Jun 25, 2:08 pm)
Re: [PATCH 03 of 36] x86: add memory barriers to wrmsr, Arjan van de Ven, (Wed Jun 25, 3:31 pm)
Re: [PATCH 03 of 36] x86: add memory barriers to wrmsr, Jeremy Fitzhardinge, (Wed Jun 25, 4:05 pm)
Re: [PATCH 03 of 36] x86: add memory barriers to wrmsr, H. Peter Anvin, (Wed Jun 25, 4:18 pm)
Re: [PATCH 03 of 36] x86: add memory barriers to wrmsr, Jeremy Fitzhardinge, (Wed Jun 25, 4:37 pm)
Re: [PATCH 03 of 36] x86: add memory barriers to wrmsr, H. Peter Anvin, (Wed Jun 25, 4:42 pm)
Re: [PATCH 00 of 36] x86/paravirt: groundwork for 64-bit X ..., Jeremy Fitzhardinge, (Thu Jun 26, 7:28 am)
Re: [Xen-devel] Re: [PATCH 00 of 36] x86/paravirt: groundw ..., Jeremy Fitzhardinge, (Thu Jun 26, 7:34 am)
Re: [PATCH 00 of 36] x86/paravirt: groundwork for 64-bit X ..., Jeremy Fitzhardinge, (Thu Jun 26, 11:25 am)
Re: [PATCH 00 of 36] x86/paravirt: groundwork for 64-bit X ..., Jeremy Fitzhardinge, (Thu Jun 26, 12:02 pm)
Re: [Xen-devel] Re: [PATCH 00 of 36] x86/paravirt: groundw ..., Jeremy Fitzhardinge, (Fri Jun 27, 9:02 am)
Re: [Xen-devel] Re: [PATCH 00 of 36] x86/paravirt: groundw ..., Jeremy Fitzhardinge, (Fri Jun 27, 9:25 am)
Re: [Xen-devel] Re: [PATCH 00 of 36] x86/paravirt: groundw ..., Jeremy Fitzhardinge, (Fri Jun 27, 12:04 pm)
Re: [Xen-devel] Re: [PATCH 00 of 36] x86/paravirt: groundw ..., Jeremy Fitzhardinge, (Sun Jun 29, 8:02 pm)
Re: [Xen-devel] Re: [PATCH 00 of 36] x86/paravirt: groundw ..., Jeremy Fitzhardinge, (Sun Jun 29, 10:32 pm)
Re: [Xen-devel] Re: [PATCH 00 of 36] x86/paravirt: groundw ..., Jeremy Fitzhardinge, (Mon Jun 30, 10:17 am)
Re: [Xen-devel] Re: [PATCH 00 of 36] x86/paravirt: groundw ..., Jeremy Fitzhardinge, (Mon Jun 30, 10:57 am)
Re: [Xen-devel] Re: [PATCH 00 of 36] x86/paravirt: groundw ..., Jeremy Fitzhardinge, (Mon Jun 30, 11:36 am)
Re: [Xen-devel] Re: [PATCH 00 of 36] x86/paravirt: groundw ..., Jeremy Fitzhardinge, (Mon Jun 30, 4:04 pm)
Re: [Xen-devel] Re: [PATCH 00 of 36] x86/paravirt: groundw ..., Jeremy Fitzhardinge, (Tue Jul 1, 9:10 am)
Re: [Xen-devel] Re: [PATCH 00 of 36] x86/paravirt: groundw ..., Jeremy Fitzhardinge, (Tue Jul 1, 9:14 am)
Re: [Xen-devel] Re: [PATCH 00 of 36] x86/paravirt: groundw ..., Jeremy Fitzhardinge, (Thu Jul 3, 8:47 am)
Re: [Xen-devel] Re: [PATCH 00 of 36] x86/paravirt: groundw ..., Jeremy Fitzhardinge, (Thu Jul 3, 11:25 am)
Re: [Xen-devel] Re: [PATCH 00 of 36] x86/paravirt: groundw ..., Jeremy Fitzhardinge, (Thu Jul 3, 11:41 am)