diff options
author | Bob Moore <robert.moore@intel.com> | 2007-04-03 20:00:29 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-07-03 01:56:30 -0400 |
commit | e0b91050f208ab370fac9269f8e42bc746889422 (patch) | |
tree | ebbffb91c0cb32b04a474dc2fcb23db0637d7b0b /drivers/acpi/events | |
parent | a0a3f6c69b45dcafefdce5dbac2221c02aaae871 (diff) | |
download | linux-e0b91050f208ab370fac9269f8e42bc746889422.tar.gz linux-e0b91050f208ab370fac9269f8e42bc746889422.tar.bz2 linux-e0b91050f208ab370fac9269f8e42bc746889422.zip |
ACPICA: Fixed possible corruption of global GPE list
Fixed a problem in acpi_ev_delete_gpe_xrupt where the global interrupt
list could be corrupted if the interrupt being removed was at
the head of the list. Reported by Linn Crosetto.
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/events')
-rw-r--r-- | drivers/acpi/events/evgpeblk.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/acpi/events/evgpeblk.c b/drivers/acpi/events/evgpeblk.c index 902c287b3a4f..361ebe6c4a6f 100644 --- a/drivers/acpi/events/evgpeblk.c +++ b/drivers/acpi/events/evgpeblk.c @@ -586,6 +586,10 @@ acpi_ev_delete_gpe_xrupt(struct acpi_gpe_xrupt_info *gpe_xrupt) flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock); if (gpe_xrupt->previous) { gpe_xrupt->previous->next = gpe_xrupt->next; + } else { + /* No previous, update list head */ + + acpi_gbl_gpe_xrupt_list_head = gpe_xrupt->next; } if (gpe_xrupt->next) { |