diff options
| -rw-r--r-- | arch/x86/kernel/cpu/hypervisor.c | 2 | ||||
| -rw-r--r-- | arch/x86/xen/Kconfig | 5 | ||||
| -rw-r--r-- | arch/x86/xen/enlighten.c | 2 | ||||
| -rw-r--r-- | arch/x86/xen/mmu.c | 2 | ||||
| -rw-r--r-- | arch/x86/xen/platform-pci-unplug.c | 2 | ||||
| -rw-r--r-- | arch/x86/xen/time.c | 3 | ||||
| -rw-r--r-- | drivers/xen/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/xen/events.c | 4 | 
8 files changed, 19 insertions, 3 deletions
diff --git a/arch/x86/kernel/cpu/hypervisor.c b/arch/x86/kernel/cpu/hypervisor.c index 5bccedcb912..8095f8611f8 100644 --- a/arch/x86/kernel/cpu/hypervisor.c +++ b/arch/x86/kernel/cpu/hypervisor.c @@ -34,7 +34,7 @@ static const __initconst struct hypervisor_x86 * const hypervisors[] =  {  	&x86_hyper_vmware,  	&x86_hyper_ms_hyperv, -#ifdef CONFIG_XEN +#ifdef CONFIG_XEN_PVHVM  	&x86_hyper_xen_hvm,  #endif  }; diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig index b83e119fbeb..68128a1b401 100644 --- a/arch/x86/xen/Kconfig +++ b/arch/x86/xen/Kconfig @@ -13,6 +13,11 @@ config XEN  	  kernel to boot in a paravirtualized environment under the  	  Xen hypervisor. +config XEN_PVHVM +	def_bool y +	depends on XEN +	depends on X86_LOCAL_APIC +  config XEN_MAX_DOMAIN_MEMORY         int "Maximum allowed size of a domain in gigabytes"         default 8 if X86_32 diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index 75b479a684f..6f5345378ab 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c @@ -1282,6 +1282,7 @@ void xen_hvm_init_shared_info(void)  	}  } +#ifdef CONFIG_XEN_PVHVM  static int __cpuinit xen_hvm_cpu_notify(struct notifier_block *self,  				    unsigned long action, void *hcpu)  { @@ -1338,3 +1339,4 @@ const __refconst struct hypervisor_x86 x86_hyper_xen_hvm = {  	.init_platform		= xen_hvm_guest_init,  };  EXPORT_SYMBOL(x86_hyper_xen_hvm); +#endif diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c index 84648c1bf13..413b19b3d0f 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c @@ -1942,6 +1942,7 @@ void __init xen_init_mmu_ops(void)  	pv_mmu_ops = xen_mmu_ops;  } +#ifdef CONFIG_XEN_PVHVM  static void xen_hvm_exit_mmap(struct mm_struct *mm)  {  	struct xen_hvm_pagetable_dying a; @@ -1973,6 +1974,7 @@ void __init xen_hvm_init_mmu_ops(void)  	if (is_pagetable_dying_supported())  		pv_mmu_ops.exit_mmap = xen_hvm_exit_mmap;  } +#endif  #ifdef CONFIG_XEN_DEBUG_FS diff --git a/arch/x86/xen/platform-pci-unplug.c b/arch/x86/xen/platform-pci-unplug.c index 2f7f3fb3477..554c002a1e1 100644 --- a/arch/x86/xen/platform-pci-unplug.c +++ b/arch/x86/xen/platform-pci-unplug.c @@ -32,6 +32,7 @@  /* store the value of xen_emul_unplug after the unplug is done */  int xen_platform_pci_unplug;  EXPORT_SYMBOL_GPL(xen_platform_pci_unplug); +#ifdef CONFIG_XEN_PVHVM  static int xen_emul_unplug;  static int __init check_platform_magic(void) @@ -133,3 +134,4 @@ static int __init parse_xen_emul_unplug(char *arg)  	return 0;  }  early_param("xen_emul_unplug", parse_xen_emul_unplug); +#endif diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c index 4780e55886a..2aab4a2b910 100644 --- a/arch/x86/xen/time.c +++ b/arch/x86/xen/time.c @@ -516,6 +516,7 @@ __init void xen_init_time_ops(void)  	x86_platform.set_wallclock = xen_set_wallclock;  } +#ifdef CONFIG_XEN_PVHVM  static void xen_hvm_setup_cpu_clockevents(void)  {  	int cpu = smp_processor_id(); @@ -544,4 +545,4 @@ __init void xen_hvm_init_time_ops(void)  	x86_platform.get_wallclock = xen_get_wallclock;  	x86_platform.set_wallclock = xen_set_wallclock;  } - +#endif diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig index 8f84b108b49..0a882693663 100644 --- a/drivers/xen/Kconfig +++ b/drivers/xen/Kconfig @@ -64,7 +64,7 @@ config XEN_SYS_HYPERVISOR  config XEN_PLATFORM_PCI  	tristate "xen platform pci device driver" -	depends on XEN +	depends on XEN_PVHVM  	default m  	help  	  Driver for the Xen PCI Platform device: it is responsible for diff --git a/drivers/xen/events.c b/drivers/xen/events.c index b5a254e9aeb..5e1f34892dc 100644 --- a/drivers/xen/events.c +++ b/drivers/xen/events.c @@ -973,6 +973,7 @@ int xen_set_callback_via(uint64_t via)  }  EXPORT_SYMBOL_GPL(xen_set_callback_via); +#ifdef CONFIG_XEN_PVHVM  /* Vector callbacks are better than PCI interrupts to receive event   * channel notifications because we can receive vector callbacks on any   * vcpu and we don't need PCI support or APIC interactions. */ @@ -996,6 +997,9 @@ void xen_callback_vector(void)  			alloc_intr_gate(XEN_HVM_EVTCHN_CALLBACK, xen_hvm_callback_vector);  	}  } +#else +void xen_callback_vector(void) {} +#endif  void __init xen_init_IRQ(void)  {  |