[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PULL 28/30] sPAPR: Don't enable EEH on emulated PCI devices
From: |
Alexander Graf |
Subject: |
[Qemu-ppc] [PULL 28/30] sPAPR: Don't enable EEH on emulated PCI devices |
Date: |
Tue, 7 Jul 2015 17:49:40 +0200 |
From: Gavin Shan <address@hidden>
There might have emulated PCI devices, together with VFIO PCI
devices under one PHB. The EEH capability shouldn't enabled
on emulated PCI devices.
The patch returns error when enabling EEH capability on emulated
PCI devices by RTAS call "ibm,set-eeh-option".
Signed-off-by: Gavin Shan <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>
---
hw/ppc/spapr_pci.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
index a139aea..a8f79d8 100644
--- a/hw/ppc/spapr_pci.c
+++ b/hw/ppc/spapr_pci.c
@@ -429,6 +429,7 @@ static void rtas_ibm_set_eeh_option(PowerPCCPU *cpu,
{
sPAPRPHBState *sphb;
sPAPRPHBClass *spc;
+ PCIDevice *pdev;
uint32_t addr, option;
uint64_t buid;
int ret;
@@ -446,6 +447,12 @@ static void rtas_ibm_set_eeh_option(PowerPCCPU *cpu,
goto param_error_exit;
}
+ pdev = pci_find_device(PCI_HOST_BRIDGE(sphb)->bus,
+ (addr >> 16) & 0xFF, (addr >> 8) & 0xFF);
+ if (!pdev || !object_dynamic_cast(OBJECT(pdev), "vfio-pci")) {
+ goto param_error_exit;
+ }
+
spc = SPAPR_PCI_HOST_BRIDGE_GET_CLASS(sphb);
if (!spc->eeh_set_option) {
goto param_error_exit;
--
1.8.1.4
- [Qemu-ppc] [PULL 09/30] spapr: Add sPAPRMachineClass, (continued)
- [Qemu-ppc] [PULL 09/30] spapr: Add sPAPRMachineClass, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 10/30] spapr_pci: encode missing 64-bit memory address space, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 01/30] linux-user, ppc: mftbl can be used by user application, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 03/30] target-ppc: fix hugepage support when using memory-backend-file, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 14/30] spapr_iommu: translate sPAPRTCEAccess to IOMMUAccessFlags, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 16/30] spapr: Consider max_cpus during xics initialization, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 18/30] cpus: Add a macro to walk CPUs in reverse, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 12/30] spapr_pci: set device node unit address as hex, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 04/30] spapr: ensure we have at least one XICS server, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 20/30] spapr: Consolidate cpu init code into a routine, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 28/30] sPAPR: Don't enable EEH on emulated PCI devices,
Alexander Graf <=
- [Qemu-ppc] [PULL 29/30] sPAPR: Reenable EEH functionality on reboot, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 13/30] spapr_iommu: drop erroneous check in h_put_tce_indirect(), Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 11/30] spapr_pci: encode class code including Prog IF register, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 22/30] xics_kvm: Don't enable KVM_CAP_IRQ_XICS if already enabled, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 30/30] sPAPR: Clear stale MSIx table during EEH reset, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 08/30] spapr: Remove obsolete entry_point field from sPAPRMachineState, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 26/30] spapr_vty: lookup should only return valid VTY objects, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 07/30] spapr: Remove obsolete ram_limit field from sPAPRMachineState, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 17/30] spapr: Support ibm, lrdr-capacity device tree property, Alexander Graf, 2015/07/07
- [Qemu-ppc] [PULL 21/30] ppc: Update cpu_model in MachineState, Alexander Graf, 2015/07/07