diff options
Diffstat (limited to 'drivers/platform/x86/intel/pmc/pltdrv.c')
| -rw-r--r-- | drivers/platform/x86/intel/pmc/pltdrv.c | 9 | 
1 files changed, 9 insertions, 0 deletions
| diff --git a/drivers/platform/x86/intel/pmc/pltdrv.c b/drivers/platform/x86/intel/pmc/pltdrv.c index 15ca8afdd973..ddfba38c2104 100644 --- a/drivers/platform/x86/intel/pmc/pltdrv.c +++ b/drivers/platform/x86/intel/pmc/pltdrv.c @@ -18,6 +18,8 @@  #include <asm/cpu_device_id.h>  #include <asm/intel-family.h> +#include <xen/xen.h> +  static void intel_pmc_core_release(struct device *dev)  {  	kfree(dev); @@ -53,6 +55,13 @@ static int __init pmc_core_platform_init(void)  	if (acpi_dev_present("INT33A1", NULL, -1))  		return -ENODEV; +	/* +	 * Skip forcefully attaching the device for VMs. Make an exception for +	 * Xen dom0, which does have full hardware access. +	 */ +	if (cpu_feature_enabled(X86_FEATURE_HYPERVISOR) && !xen_initial_domain()) +		return -ENODEV; +  	if (!x86_match_cpu(intel_pmc_core_platform_ids))  		return -ENODEV; | 
