]> git.hungrycats.org Git - linux/commitdiff
[ACPI] on SCI allocation failure, don't mistakenly free IRQ0
authorLen Brown <len.brown@intel.com>
Mon, 26 Jan 2004 10:29:59 +0000 (05:29 -0500)
committerLen Brown <lenb@dhcppc3.>
Mon, 26 Jan 2004 10:29:59 +0000 (05:29 -0500)
from Jes Sorensen

drivers/acpi/osl.c

index 7c7332bd2c641b62911c5849d2820ab1eaeb6e05..09b5589284942f142d23c2019e2f217c6e5a49da 100644 (file)
@@ -258,13 +258,13 @@ acpi_os_install_interrupt_handler(u32 irq, OSD_HANDLER handler, void *context)
                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;
 }
@@ -272,12 +272,13 @@ acpi_os_install_interrupt_handler(u32 irq, OSD_HANDLER handler, void *context)
 acpi_status
 acpi_os_remove_interrupt_handler(u32 irq, OSD_HANDLER handler)
 {
-       if (acpi_irq_handler) {
+       if (irq) {
 #ifdef CONFIG_IA64
                irq = acpi_irq_to_vector(irq);
 #endif
                free_irq(irq, acpi_irq);
                acpi_irq_handler = NULL;
+               acpi_irq_irq = 0;
        }
 
        return AE_OK;