Re: [patch] 2.6.1-mm3 acpi frees free irq0

Len Brown
2004-01-26T20:30:31Z

Accepted.

thanks,
-Len

On Thu, 2004-01-15 at 09:56, Jes Sorensen wrote:
> Hi,
>
> There is a bug in the ACPI code found in 2.6.1-mm3 where if it can't
> find the interrupt source for the ACPI System Control Interrupt Handler,
> it end up trying to free irq 0.
>
> Included patch fixes the problem.
>
> Cheers,
> Jes
>
> --- linux-2.6.1-mm3/drivers/acpi/osl.c~ Wed Jan 14 05:00:25 2004
> +++ linux-2.6.1-mm3/drivers/acpi/osl.c Thu Jan 15 06:43:28 2004
> @@ -257,13 +257,13 @@
> return AE_OK;
> }
> #endif
> - acpi_irq_irq = irq;
> acpi_irq_handler = handler;
> acpi_irq_context = context;
> if (request_irq(irq, acpi_irq, SA_SHIRQ, "acpi", acpi_irq)) {
> printk(KERN_ERR PREFIX "SCI (IRQ%d) allocation failed\n", irq);
> return AE_NOT_ACQUIRED;
> }
> + acpi_irq_irq = irq;
>
> return AE_OK;
> }
> @@ -271,12 +271,13 @@
> acpi_status
> acpi_os_remove_interrupt_handler(u32 irq, OSD_HANDLER handler)
> {
> - if (acpi_irq_handler) {
> + if (irq) {
> #if defined(CONFIG_IA64) || defined(CONFIG_PCI_USE_VECTOR)
> irq = acpi_irq_to_vector(irq);
> #endif
> free_irq(irq, acpi_irq);
> acpi_irq_handler = NULL;
> + acpi_irq_irq = 0;
> }
>
> return AE_OK;