From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S267614AbUHRXk2 (ORCPT ); Wed, 18 Aug 2004 19:40:28 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S267617AbUHRXk2 (ORCPT ); Wed, 18 Aug 2004 19:40:28 -0400 Received: from atlrel6.hp.com ([156.153.255.205]:41406 "EHLO atlrel6.hp.com") by vger.kernel.org with ESMTP id S267614AbUHRXkZ (ORCPT ); Wed, 18 Aug 2004 19:40:25 -0400 From: Bjorn Helgaas To: Shawn Starr Subject: Re: 2.6.8.1-mm1 broke USB driver with ACPI pci irq routing... info follows Date: Wed, 18 Aug 2004 17:40:15 -0600 User-Agent: KMail/1.6.2 Cc: linux-kernel@vger.kernel.org, Cyrille Ch?p?lov References: <200408170257.26712.shawn.starr@rogers.com> <200408170848.42173.bjorn.helgaas@hp.com> <200408172104.30280.shawn.starr@rogers.com> In-Reply-To: <200408172104.30280.shawn.starr@rogers.com> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200408181740.15310.bjorn.helgaas@hp.com> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org 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 ===== 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;