mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
hw/ppc/spapr_pci: Do not create DT for disabled PCI device
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> Message-Id: <20250116-reuse-v20-1-7cb370606368@daynix.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
bc82af6b0d
commit
5731b00524
1 changed files with 14 additions and 2 deletions
|
@ -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)) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue