aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/xen/enlighten.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/xen/enlighten.c')
-rw-r--r--arch/x86/xen/enlighten.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index cd022c43dfbc..aed7ceeb4b65 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -66,6 +66,8 @@ EXPORT_SYMBOL_GPL(xen_start_info);
66 66
67struct shared_info xen_dummy_shared_info; 67struct shared_info xen_dummy_shared_info;
68 68
69void *xen_initial_gdt;
70
69/* 71/*
70 * Point at some empty memory to start with. We map the real shared_info 72 * Point at some empty memory to start with. We map the real shared_info
71 * page as soon as fixmap is up and running. 73 * page as soon as fixmap is up and running.
@@ -917,8 +919,19 @@ asmlinkage void __init xen_start_kernel(void)
917 have_vcpu_info_placement = 0; 919 have_vcpu_info_placement = 0;
918#endif 920#endif
919 921
920 /* setup percpu state */ 922#ifdef CONFIG_X86_64
923 /*
924 * Setup percpu state. We only need to do this for 64-bit
925 * because 32-bit already has %fs set properly.
926 */
921 load_percpu_segment(0); 927 load_percpu_segment(0);
928#endif
929 /*
930 * The only reliable way to retain the initial address of the
931 * percpu gdt_page is to remember it here, so we can go and
932 * mark it RW later, when the initial percpu area is freed.
933 */
934 xen_initial_gdt = &per_cpu(gdt_page, 0);
922 935
923 xen_smp_init(); 936 xen_smp_init();
924 937