[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 25/27] sPAPR: Don't enable EEH on emulated PCI devices
From: |
David Gibson |
Subject: |
[Qemu-ppc] [PATCH 25/27] sPAPR: Don't enable EEH on emulated PCI devices |
Date: |
Thu, 2 Jul 2015 16:23:26 +1000 |
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>
---
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;
--
2.4.3
- [Qemu-ppc] [PATCH 26/27] sPAPR: Reenable EEH functionality on reboot, (continued)
- [Qemu-ppc] [PATCH 26/27] sPAPR: Reenable EEH functionality on reboot, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 03/27] spapr: Merge sPAPREnvironment into sPAPRMachineState, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 02/27] pseries: Update SLOF firmware image to qemu-slof-20150429, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 00/27] sPAPR updates 2015-07-02, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 01/27] spapr: ensure we have at least one XICS server, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 07/27] spapr_pci: encode missing 64-bit memory address space, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 04/27] spapr: Remove obsolete ram_limit field from sPAPRMachineState, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 06/27] spapr: Add sPAPRMachineClass, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 09/27] spapr_pci: set device node unit address as hex, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 26/27] sPAPR: Reenable EEH functionality on reboot, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 25/27] sPAPR: Don't enable EEH on emulated PCI devices,
David Gibson <=
- [Qemu-ppc] [PATCH 17/27] spapr: Consolidate cpu init code into a routine, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 13/27] spapr: Consider max_cpus during xics initialization, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 12/27] Revert "hw/ppc/spapr_pci.c: Avoid functions not in glib 2.12 (g_hash_table_iter_*)", David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 23/27] spapr_vty: lookup should only return valid VTY objects, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 15/27] cpus: Add a macro to walk CPUs in reverse, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 22/27] spapr_pci: drop redundant args in spapr_[populate, create]_pci_child_dt, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 05/27] spapr: Remove obsolete entry_point field from sPAPRMachineState, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 10/27] spapr_iommu: drop erroneous check in h_put_tce_indirect(), David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 19/27] xics_kvm: Don't enable KVM_CAP_IRQ_XICS if already enabled, David Gibson, 2015/07/02
- [Qemu-ppc] [PATCH 11/27] spapr_iommu: translate sPAPRTCEAccess to IOMMUAccessFlags, David Gibson, 2015/07/02