Re: [PATCH V4 1/3] x86/ioapic: Support hot-removal of IOAPICs present during boot

From: Bjorn Helgaas
Date: Thu Jun 23 2016 - 13:35:19 EST


On Thu, Jun 23, 2016 at 01:11:41PM +0800, wrote:
> From: Rui Wang <rui.y.wang@xxxxxxxxx>
>
> On Wed, June 22, 2016 11:15 PM Bjorn Helgaas wrote:
> > [...]
> > > @@ -1779,8 +1780,12 @@ void __init
> > > pci_assign_unassigned_resources(void)
> > > {
> > > struct pci_bus *root_bus;
> > >
> > > - list_for_each_entry(root_bus, &pci_root_buses, node)
> > > + list_for_each_entry(root_bus, &pci_root_buses, node) {
> > > pci_assign_unassigned_root_bus_resources(root_bus);
> > > +#ifdef CONFIG_X86
> > > + acpi_ioapic_add(ACPI_HANDLE(root_bus->bridge));
> > > +#endif
> >
> > Doesn't this do the right thing even if you omit the #ifdefs, since you
> > define a stub function below?
> >
>
> No. Without the '#ifdef CONFIG_X86' it breaks MIPS arch. The stub function is
> within 'ifdef CONFIG_ACPI'. On archs without ACPI it doesn't compile due to
> 'undefined reference to acpi_ioapic_add'.

But this *could* be made to work by defining a stub for the
non-CONFIG_ACPI case. That's what we generally do to avoid ifdefs in
the code.

Bjorn