summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2007-08-15 14:58:15 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-08-22 16:23:25 -0700
commitaa14abcf24054c3ec8217593e05cf96c70801bcd (patch)
tree4456580ab21527929b9a1c8708dbda7bfbbf9ead
parente9561ddc92d0cb00aa69521716ee29904bf5bf14 (diff)
downloadlwn-aa14abcf24054c3ec8217593e05cf96c70801bcd.tar.gz
lwn-aa14abcf24054c3ec8217593e05cf96c70801bcd.zip
ACPICA: Fixed possible corruption of global GPE list
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> Cc: Chuck Ebbert <cebbert@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/acpi/events/evgpeblk.c4
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) {