From: Roger Pau Monne Date: Wed, 31 Aug 2016 10:43:55 +0000 (+0200) Subject: xen/x86: add all PCI devices to PVHv2 Dom0 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=b78e3edf440423e9be94535af11d46aab8acc34e;p=people%2Froyger%2Fxen.git xen/x86: add all PCI devices to PVHv2 Dom0 Signed-off-by: Roger Pau Monné --- Cc: Jan Beulich Cc: Andrew Cooper --- diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index d7b54d991b..d57eec2eec 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -2531,6 +2531,25 @@ static int __init hvm_setup_acpi(struct domain *d, paddr_t start_info) return 0; } +static int __init hvm_setup_pci(struct domain *d) +{ + struct pci_dev *pdev; + int rc; + + printk("** Adding PCI devices **\n"); + + pcidevs_lock(); + list_for_each_entry( pdev, &d->arch.pdev_list, domain_list ) + { + rc = hwdom_add_device(pdev); + if ( rc ) + return rc; + } + pcidevs_unlock(); + + return 0; +} + static int __init construct_dom0_hvm(struct domain *d, const module_t *image, unsigned long image_headroom, module_t *initrd, @@ -2577,6 +2596,13 @@ static int __init construct_dom0_hvm(struct domain *d, const module_t *image, return rc; } + rc = hvm_setup_pci(d); + if ( rc ) + { + printk("Failed to add PCI devices: %d\n", rc); + return rc; + } + clear_bit(_VPF_down, &d->vcpu[0]->pause_flags); return 0;