diff options
Diffstat (limited to 'arch/x86/hyperv/hv_init.c')
| -rw-r--r-- | arch/x86/hyperv/hv_init.c | 19 | 
1 files changed, 19 insertions, 0 deletions
| diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c index 20c876c7c5bf..7abb09e2eeb8 100644 --- a/arch/x86/hyperv/hv_init.c +++ b/arch/x86/hyperv/hv_init.c @@ -17,6 +17,7 @@   *   */ +#include <linux/efi.h>  #include <linux/types.h>  #include <asm/apic.h>  #include <asm/desc.h> @@ -253,6 +254,22 @@ static int hv_cpu_die(unsigned int cpu)  	return 0;  } +static int __init hv_pci_init(void) +{ +	int gen2vm = efi_enabled(EFI_BOOT); + +	/* +	 * For Generation-2 VM, we exit from pci_arch_init() by returning 0. +	 * The purpose is to suppress the harmless warning: +	 * "PCI: Fatal: No config space access function found" +	 */ +	if (gen2vm) +		return 0; + +	/* For Generation-1 VM, we'll proceed in pci_arch_init().  */ +	return 1; +} +  /*   * This function is to be invoked early in the boot sequence after the   * hypervisor has been detected. @@ -329,6 +346,8 @@ void __init hyperv_init(void)  	hv_apic_init(); +	x86_init.pci.arch_init = hv_pci_init; +  	/*  	 * Register Hyper-V specific clocksource.  	 */ |