applied to acpi-test thanks, -len On Wed, 5 Nov 2008, Bjorn Helgaas wrote: > This removes the acpi_irq_balance_set() interface from the PCI > interrupt link driver. > > x86 used acpi_irq_balance_set() to tell the PCI interrupt link > driver to configure links to minimize IRQ sharing. But the link > driver can easily figure out whether to turn on IRQ balancing > based on the IRQ model (PIC/IOAPIC/etc), so we can get rid of > that external interface. > > It's better for the driver to figure this out at init-time. If > we set it externally via the x86 code, the interface reduces > modularity, and we depend on the fact that acpi_process_madt() > happens before we process the kernel command line. > > Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx> > --- > arch/x86/include/asm/acpi.h | 1 - > arch/x86/kernel/acpi/boot.c | 1 - > drivers/acpi/pci_link.c | 11 +++++++++-- > 3 files changed, 9 insertions(+), 4 deletions(-) > > diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h > index 8d676d8..9830681 100644 > --- a/arch/x86/include/asm/acpi.h > +++ b/arch/x86/include/asm/acpi.h > @@ -113,7 +113,6 @@ static inline void acpi_disable_pci(void) > acpi_pci_disabled = 1; > acpi_noirq_set(); > } > -extern int acpi_irq_balance_set(char *str); > > /* routines for saving/restoring kernel state */ > extern int acpi_save_state_mem(void); > diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c > index 8c1f76a..4c51a2f 100644 > --- a/arch/x86/kernel/acpi/boot.c > +++ b/arch/x86/kernel/acpi/boot.c > @@ -1343,7 +1343,6 @@ static void __init acpi_process_madt(void) > error = acpi_parse_madt_ioapic_entries(); > if (!error) { > acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC; > - acpi_irq_balance_set(NULL); > acpi_ioapic = 1; > > smp_found_config = 1; > diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c > index fcfdef7..e52ad91 100644 > --- a/drivers/acpi/pci_link.c > +++ b/drivers/acpi/pci_link.c > @@ -531,7 +531,7 @@ int __init acpi_irq_penalty_init(void) > return 0; > } > > -static int acpi_irq_balance; /* 0: static, 1: balance */ > +static int acpi_irq_balance = -1; /* 0: static, 1: balance */ > > static int acpi_pci_link_allocate(struct acpi_pci_link *link) > { > @@ -950,10 +950,17 @@ device_initcall(irqrouter_init_sysfs); > > static int __init acpi_pci_link_init(void) > { > - > if (acpi_noirq) > return 0; > > + if (acpi_irq_balance == -1) { > + /* no command line switch: enable balancing in IOAPIC mode */ > + if (acpi_irq_model == ACPI_IRQ_MODEL_IOAPIC) > + acpi_irq_balance = 1; > + else > + acpi_irq_balance = 0; > + } > + > acpi_link.count = 0; > INIT_LIST_HEAD(&acpi_link.entries); > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html