On Mon, 16 Jun 2025 11:46:44 +0200 Eric Auger <eric.au...@redhat.com> wrote:
> pcihp acpi_set_pci_info() generic code currently uses > acpi_get_i386_pci_host() to retrieve the pci host bridge. > > To make it work also on ARM we get rid of that call and > directly use AcpiPciHpState::root. > > Signed-off-by: Eric Auger <eric.au...@redhat.com> > Suggested-by: Igor Mammedov <imamm...@redhat.com> Nice Reviewed-by: Jonathan Cameron <jonathan.came...@huawei.com> > > --- > > v2 -> v3: > - Use AcpiPciHpState::root > > v1 -> v2 > - described the fact we changed the implementation of > acpi_get_pci_host() in the commit msg. > --- > hw/acpi/pcihp.c | 11 ++++------- > 1 file changed, 4 insertions(+), 7 deletions(-) > > diff --git a/hw/acpi/pcihp.c b/hw/acpi/pcihp.c > index 236e175b69..e79a24b821 100644 > --- a/hw/acpi/pcihp.c > +++ b/hw/acpi/pcihp.c > @@ -99,10 +99,10 @@ static void *acpi_set_bsel(PCIBus *bus, void *opaque) > return info; > } > > -static void acpi_set_pci_info(bool has_bridge_hotplug) > +static void acpi_set_pci_info(AcpiPciHpState *s) > { > static bool bsel_is_set; > - Object *host = acpi_get_i386_pci_host(); > + bool has_bridge_hotplug = s->use_acpi_hotplug_bridge; > PCIBus *bus; > BSELInfo info = { .bsel_alloc = ACPI_PCIHP_BSEL_DEFAULT, > .has_bridge_hotplug = has_bridge_hotplug }; > @@ -112,11 +112,8 @@ static void acpi_set_pci_info(bool has_bridge_hotplug) > } > bsel_is_set = true; > > - if (!host) { > - return; > - } > > - bus = PCI_HOST_BRIDGE(host)->bus; > + bus = s->root; > if (bus) { > /* Scan all PCI buses. Set property to enable acpi based hotplug. */ > pci_for_each_bus_depth_first(bus, acpi_set_bsel, NULL, &info); > @@ -266,7 +263,7 @@ static void acpi_pcihp_update(AcpiPciHpState *s) > > void acpi_pcihp_reset(AcpiPciHpState *s) > { > - acpi_set_pci_info(s->use_acpi_hotplug_bridge); > + acpi_set_pci_info(s); > acpi_pcihp_update(s); > } >