]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
sPAPR: Enable EEH on VFIO PCI device only
authorGavin Shan <gwshan@linux.vnet.ibm.com>
Fri, 18 Sep 2015 07:30:44 +0000 (17:30 +1000)
committerDavid Gibson <david@gibson.dropbear.id.au>
Wed, 23 Sep 2015 00:51:11 +0000 (10:51 +1000)
This checks if the PCI device retrieved from the PCI device address
is VFIO PCI device when enabling EEH functionality. If it's not
VFIO PCI device, the EEH functonality isn't enabled.

Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/ppc/spapr_pci_vfio.c

index cca45ed3129cc403777d89cec0f52fe29fff68f8..a61b41813184ef7613224a9d8ec901b7a3f3782f 100644 (file)
@@ -117,7 +117,7 @@ static int spapr_phb_vfio_eeh_set_option(sPAPRPHBState *sphb,
         phb = PCI_HOST_BRIDGE(sphb);
         pdev = pci_find_device(phb->bus,
                                (addr >> 16) & 0xFF, (addr >> 8) & 0xFF);
-        if (!pdev) {
+        if (!pdev || !object_dynamic_cast(OBJECT(pdev), "vfio-pci")) {
             return RTAS_OUT_PARAM_ERROR;
         }