Merge branch 'bugfix' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen...
authorIngo Molnar <mingo@elte.hu>
Wed, 23 Sep 2009 12:35:10 +0000 (14:35 +0200)
committerIngo Molnar <mingo@elte.hu>
Wed, 23 Sep 2009 12:35:10 +0000 (14:35 +0200)
1  2 
arch/x86/include/asm/pgtable_types.h
arch/x86/xen/enlighten.c

index 7b467bf3c68067218d1a79a40818018b9ed90134,e9918d99f83cd45f5ed1d278004ee4123fa3a34b..d1f4a760be23dc6cfe9a2feff61a7b07d1dc8c46
@@@ -277,6 -277,7 +277,7 @@@ static inline pteval_t pte_flags(pte_t 
  typedef struct page *pgtable_t;
  
  extern pteval_t __supported_pte_mask;
+ extern void set_nx(void);
  extern int nx_enabled;
  
  #define pgprot_writecombine   pgprot_writecombine
@@@ -299,8 -300,8 +300,8 @@@ void set_pte_vaddr(unsigned long vaddr
  extern void native_pagetable_setup_start(pgd_t *base);
  extern void native_pagetable_setup_done(pgd_t *base);
  #else
 -static inline void native_pagetable_setup_start(pgd_t *base) {}
 -static inline void native_pagetable_setup_done(pgd_t *base) {}
 +#define native_pagetable_setup_start x86_init_pgd_noop
 +#define native_pagetable_setup_done  x86_init_pgd_noop
  #endif
  
  struct seq_file;
diff --combined arch/x86/xen/enlighten.c
index 544eb7496531b43990d5f89d588832f0c8265814,5d701bf66a23993ca29fc623254ab8ecbe7bec56..3439616d69f188787a6b06f60cc901f37b69735c
@@@ -912,9 -912,19 +912,9 @@@ static const struct pv_info xen_info __
  
  static const struct pv_init_ops xen_init_ops __initdata = {
        .patch = xen_patch,
 -
 -      .banner = xen_banner,
 -      .memory_setup = xen_memory_setup,
 -      .arch_setup = xen_arch_setup,
 -      .post_allocator_init = xen_post_allocator_init,
  };
  
  static const struct pv_time_ops xen_time_ops __initdata = {
 -      .time_init = xen_time_init,
 -
 -      .set_wallclock = xen_set_wallclock,
 -      .get_wallclock = xen_get_wallclock,
 -      .get_tsc_khz = xen_tsc_khz,
        .sched_clock = xen_sched_clock,
  };
  
@@@ -980,6 -990,8 +980,6 @@@ static const struct pv_cpu_ops xen_cpu_
  
  static const struct pv_apic_ops xen_apic_ops __initdata = {
  #ifdef CONFIG_X86_LOCAL_APIC
 -      .setup_boot_clock = paravirt_nop,
 -      .setup_secondary_clock = paravirt_nop,
        .startup_ipi_hook = paravirt_nop,
  #endif
  };
@@@ -1058,18 -1070,7 +1058,18 @@@ asmlinkage void __init xen_start_kernel
        pv_time_ops = xen_time_ops;
        pv_cpu_ops = xen_cpu_ops;
        pv_apic_ops = xen_apic_ops;
 -      pv_mmu_ops = xen_mmu_ops;
 +
 +      x86_init.resources.memory_setup = xen_memory_setup;
 +      x86_init.oem.arch_setup = xen_arch_setup;
 +      x86_init.oem.banner = xen_banner;
 +
 +      x86_init.timers.timer_init = xen_time_init;
 +      x86_init.timers.setup_percpu_clockev = x86_init_noop;
 +      x86_cpuinit.setup_percpu_clockev = x86_init_noop;
 +
 +      x86_platform.calibrate_tsc = xen_tsc_khz;
 +      x86_platform.get_wallclock = xen_get_wallclock;
 +      x86_platform.set_wallclock = xen_set_wallclock;
  
        /*
         * Set up some pagetable state before starting to set any ptes.
  
        __supported_pte_mask |= _PAGE_IOMAP;
  
+ #ifdef CONFIG_X86_64
+       /* Work out if we support NX */
+       check_efer();
+ #endif
        xen_setup_features();
  
        /* Get mfn list */
         */
        xen_setup_stackprotector();
  
 +      xen_init_mmu_ops();
        xen_init_irq_ops();
        xen_init_cpuid_mask();
  
  
        pgd = (pgd_t *)xen_start_info->pt_base;
  
- #ifdef CONFIG_X86_64
-       /* Work out if we support NX */
-       check_efer();
- #endif
        /* Don't do the full vcpu_info placement stuff until we have a
           possible map and a non-dummy shared_info. */
        per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0];