[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v19 02/14] hw/ppc/spapr_pci: Do not create DT for disabled PCI de
From: |
Akihiko Odaki |
Subject: |
[PATCH v19 02/14] hw/ppc/spapr_pci: Do not create DT for disabled PCI device |
Date: |
Thu, 09 Jan 2025 15:29:47 +0900 |
Disabled means it is a disabled SR-IOV VF and hidden from the guest.
Do not create DT when starting the system and also keep the disabled PCI
device not linked to DRC, which generates DT in case of hotplug.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Shivaprasad G Bhat<sbhat@linux.ibm.com>
Tested-by: Shivaprasad G Bhat<sbhat@linux.ibm.com>
---
hw/ppc/spapr_pci.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
index 904227d9aa1f..b94e4ba1314f 100644
--- a/hw/ppc/spapr_pci.c
+++ b/hw/ppc/spapr_pci.c
@@ -1283,8 +1283,7 @@ static void spapr_dt_pci_device_cb(PCIBus *bus, PCIDevice
*pdev,
PciWalkFdt *p = opaque;
int err;
- if (p->err) {
- /* Something's already broken, don't keep going */
+ if (p->err || !pdev->enabled) {
return;
}
@@ -1572,6 +1571,14 @@ static void spapr_pci_plug(HotplugHandler *plug_handler,
SpaprDrc *drc = drc_from_dev(phb, pdev);
uint32_t slotnr = PCI_SLOT(pdev->devfn);
+ /*
+ * If DR or the PCI device is disabled we don't need to do anything
+ * in the case of hotplug or coldplug callbacks.
+ */
+ if (!pdev->enabled) {
+ return;
+ }
+
g_assert(drc);
if (IS_PCI_BRIDGE(plugged_dev)) {
@@ -1647,6 +1654,11 @@ static void spapr_pci_unplug_request(HotplugHandler
*plug_handler,
SpaprDrc *drc = drc_from_dev(phb, pdev);
g_assert(drc);
+
+ if (!drc->dev) {
+ return;
+ }
+
g_assert(drc->dev == plugged_dev);
if (!spapr_drc_unplug_requested(drc)) {
--
2.47.1
- [PATCH v19 00/14] hw/pci: SR-IOV related fixes and improvements, Akihiko Odaki, 2025/01/09
- [PATCH v19 01/14] hw/pci: Rename has_power to enabled, Akihiko Odaki, 2025/01/09
- [PATCH v19 02/14] hw/ppc/spapr_pci: Do not create DT for disabled PCI device,
Akihiko Odaki <=
- [PATCH v19 03/14] hw/ppc/spapr_pci: Do not reject VFs created after a PF, Akihiko Odaki, 2025/01/09
- [PATCH v19 04/14] s390x/pci: Avoid creating zpci for VFs, Akihiko Odaki, 2025/01/09
- [PATCH v19 05/14] s390x/pci: Allow plugging SR-IOV devices, Akihiko Odaki, 2025/01/09
- [PATCH v19 07/14] pcie_sriov: Do not manually unrealize, Akihiko Odaki, 2025/01/09
- [PATCH v19 06/14] s390x/pci: Check for multifunction after device realization, Akihiko Odaki, 2025/01/09
- [PATCH v19 09/14] pcie_sriov: Reuse SR-IOV VF device instances, Akihiko Odaki, 2025/01/09
- [PATCH v19 08/14] pcie_sriov: Ensure VF addr does not overflow, Akihiko Odaki, 2025/01/09
- [PATCH v19 10/14] pcie_sriov: Release VFs failed to realize, Akihiko Odaki, 2025/01/09
- [PATCH v19 11/14] pcie_sriov: Remove num_vfs from PCIESriovPF, Akihiko Odaki, 2025/01/09