Re: 2.6.8.1-mm1 broke USB driver with ACPI pci irq routing... info follows

Bjorn Helgaas
2004-08-18T23:40:28Z

Shawn and Cyrille, can you try the attached patch, please? We were using
__initdata from a function that is no longer used only at boot-time.
I'm pretty sure this will fix Shawn's problem. I don't know whether
it'll fix yours, Cyrille, but it might.

Andrew, I think this is clearly a bug independent of my other patches
in -mm, so could you apply this as well?

Make acpi_irq_penalty non-initdata, since it's used by the
non_init acpi_pci_link_allocate(). And make acpi_irq_penalty_init()
__init, since it is used only by the __init pci_acpi_init().

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>

===== drivers/acpi/pci_link.c 1.31 vs edited =====
--- 1.31/drivers/acpi/pci_link.c 2004-08-04 13:55:16 -06:00
+++ edited/drivers/acpi/pci_link.c 2004-08-18 17:26:48 -06:00
@@ -448,7 +448,7 @@
#define PIRQ_PENALTY_ISA_USED (16*16*16*16*16)
#define PIRQ_PENALTY_ISA_ALWAYS (16*16*16*16*16*16)

-static int __initdata acpi_irq_penalty[ACPI_MAX_IRQS] = {
+static int acpi_irq_penalty[ACPI_MAX_IRQS] = {
PIRQ_PENALTY_ISA_ALWAYS, /* IRQ0 timer */
PIRQ_PENALTY_ISA_ALWAYS, /* IRQ1 keyboard */
PIRQ_PENALTY_ISA_ALWAYS, /* IRQ2 cascade */
@@ -468,7 +468,7 @@
/* >IRQ15 */
};

-int
+int __init
acpi_irq_penalty_init(void)
{
struct list_head *node = NULL;