[patch] 2.6.1-mm3 acpi frees free irq0

From: Jes Sorensen
Date: Thu Jan 15 2004 - 09:58:37 EST


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;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/