sPAPR: Enable EEH on VFIO PCI device only

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>
This commit is contained in:
Gavin Shan 2015-09-18 17:30:44 +10:00 committed by David Gibson
parent 47445c80fb
commit d76548a98f

View File

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