[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v20 01/11] hw/ppc/spapr_pci: Do not create DT for disabled PCI de
From: |
Akihiko Odaki |
Subject: |
[PATCH v20 01/11] hw/ppc/spapr_pci: Do not create DT for disabled PCI device |
Date: |
Thu, 16 Jan 2025 18:00:52 +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 v20 00/11] hw/pci: SR-IOV related fixes and improvements, Akihiko Odaki, 2025/01/16
- [PATCH v20 01/11] hw/ppc/spapr_pci: Do not create DT for disabled PCI device,
Akihiko Odaki <=
- [PATCH v20 02/11] hw/ppc/spapr_pci: Do not reject VFs created after a PF, Akihiko Odaki, 2025/01/16
- [PATCH v20 03/11] s390x/pci: Avoid creating zpci for VFs, Akihiko Odaki, 2025/01/16
- [PATCH v20 04/11] s390x/pci: Allow plugging SR-IOV devices, Akihiko Odaki, 2025/01/16
- [PATCH v20 05/11] s390x/pci: Check for multifunction after device realization, Akihiko Odaki, 2025/01/16
- [PATCH v20 06/11] pcie_sriov: Do not manually unrealize, Akihiko Odaki, 2025/01/16
- [PATCH v20 07/11] pcie_sriov: Ensure VF addr does not overflow, Akihiko Odaki, 2025/01/16
- [PATCH v20 08/11] pcie_sriov: Reuse SR-IOV VF device instances, Akihiko Odaki, 2025/01/16
- [PATCH v20 09/11] pcie_sriov: Release VFs failed to realize, Akihiko Odaki, 2025/01/16
- [PATCH v20 10/11] pcie_sriov: Remove num_vfs from PCIESriovPF, Akihiko Odaki, 2025/01/16
- [PATCH v20 11/11] pcie_sriov: Register VFs after migration, Akihiko Odaki, 2025/01/16