xen: enable platform-pci only in a Xen guest
authorOlaf Hering <olaf@aepfle.de>
Tue, 10 Jul 2012 13:31:39 +0000 (15:31 +0200)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Thu, 19 Jul 2012 19:52:03 +0000 (15:52 -0400)
While debugging kexec issues in a PVonHVM guest I modified
xen_hvm_platform() to return false to disable all PV drivers. This
caused a crash in platform_pci_init() because it expects certain data
structures to be initialized properly.

To avoid such a crash make sure the driver is initialized only if
running in a Xen guest.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
drivers/xen/platform-pci.c

index 2389e581e23c00c21982e97658c87fe5200689a0..97ca359ae2bdfb8d072ee62348114a252660adf9 100644 (file)
@@ -109,6 +109,9 @@ static int __devinit platform_pci_init(struct pci_dev *pdev,
        long mmio_addr, mmio_len;
        unsigned int max_nr_gframes;
 
+       if (!xen_domain())
+               return -ENODEV;
+
        i = pci_enable_device(pdev);
        if (i)
                return i;