]> xenbits.xensource.com Git - xenclient/kernel.git/commitdiff
[IA64] Initialise xen_start_info earlier in setup_arch()
authorAlex Williamson <alex.williamson@hp.com>
Thu, 27 Sep 2007 19:33:50 +0000 (13:33 -0600)
committerAlex Williamson <alex.williamson@hp.com>
Thu, 27 Sep 2007 19:33:50 +0000 (13:33 -0600)
xen_start_info needs to be set before efi_init() is called on ia64
because xen_machine_kexec_setup_resources() is indirectly
called by efi_init() and it needs a working is_initial_xendomain();

Signed-off-by: Simon Horman <horms@verge.net.au>
arch/ia64/kernel/setup.c

index 0fd592ba957d2859194ffd6067f08b8aa247c892..06d9c5816f697bf56204d55891dfccbaab205e50 100644 (file)
@@ -442,6 +442,14 @@ early_param("nomca", setup_nomca);
 void __init
 setup_arch (char **cmdline_p)
 {
+#ifdef CONFIG_XEN
+       shared_info_t *s = NULL;
+       if (is_running_on_xen()) {
+               s = HYPERVISOR_shared_info;
+               xen_start_info = __va(s->arch.start_info_pfn << PAGE_SHIFT);
+       }
+#endif
+
        unw_init();
 
 #ifdef CONFIG_XEN
@@ -528,10 +536,6 @@ setup_arch (char **cmdline_p)
 
 #ifdef CONFIG_XEN
        if (is_running_on_xen()) {
-               shared_info_t *s = HYPERVISOR_shared_info;
-
-               xen_start_info = __va(s->arch.start_info_pfn << PAGE_SHIFT);
-
                printk("Running on Xen! start_info_pfn=0x%lx nr_pages=%ld "
                       "flags=0x%x\n", s->arch.start_info_pfn,
                       xen_start_info->nr_pages, xen_start_info->flags);