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);
>  }
>  


Reply via email to