public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Len Brown <lenb@kernel.org>
To: robert.moore@intel.com
Cc: linux-acpi@vger.kernel.org, Zhang Rui <rui.zhang@intel.com>,
	Alexey Starikovskiy <astarikovskiy@suse.de>
Subject: ACPI: disable stray GPE, prevent ACPI interrupt storm
Date: Tue, 20 Nov 2007 13:43:28 -0500	[thread overview]
Message-ID: <200711201343.28940.lenb@kernel.org> (raw)

Bob,
Rui's Linux patch below modifies an ACPICA file.

thanks,
-Len

commit a7f9b1f24974da287771e2d70b30d9ca7bd66684
Author: Zhang Rui <rui.zhang@intel.com>
Date:   Tue Nov 20 13:38:59 2007 -0500

    ACPI: disable stray GPE, prevent ACPI interrupt storm
    
    GPEs are disabled depending on their type --
    WAKE, WAKE_RUN, and RUNTIME.  An error is returned
    if we are asked to disable a GPE that has no type.
    
    But at least one system exists that enables a GPE from AML
    that is not the EC GPE, and has no _Lxx/_Exx AML handler,
    and is thus never initialized.
    
    In this case, when an external CRT is plugged in,
    the GPE fires, we attempt to disable the GPE,
    but instead just return an error.
    So the GPE stays asserted and an ACPI interrupt storm follows.
    
    The fix is to disable a firing GPE,
    even if it comes from outer space.
    
    http://bugzilla.kernel.org/show_bug.cgi?id=6217
    
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Acked-by: Alexey Starikovskiy <astarikovskiy@suse.de>
    Signed-off-by: Len Brown <len.brown@intel.com>

diff --git a/drivers/acpi/events/evgpe.c b/drivers/acpi/events/evgpe.c
index e22f4a9..056b788 100644
--- a/drivers/acpi/events/evgpe.c
+++ b/drivers/acpi/events/evgpe.c
@@ -270,18 +270,18 @@ acpi_status acpi_ev_disable_gpe(struct acpi_gpe_event_info *gpe_event_info)
 	case ACPI_GPE_TYPE_WAKE_RUN:
 		ACPI_CLEAR_BIT(gpe_event_info->flags, ACPI_GPE_WAKE_ENABLED);
 
-		/*lint -fallthrough */
+		/* fallthrough */
 
 	case ACPI_GPE_TYPE_RUNTIME:
 
 		/* Disable the requested runtime GPE */
 
 		ACPI_CLEAR_BIT(gpe_event_info->flags, ACPI_GPE_RUN_ENABLED);
-		status = acpi_hw_write_gpe_enable_reg(gpe_event_info);
-		break;
+
+		/* fallthrough */
 
 	default:
-		return_ACPI_STATUS(AE_BAD_PARAMETER);
+		acpi_hw_write_gpe_enable_reg(gpe_event_info);
 	}
 
 	return_ACPI_STATUS(AE_OK);

             reply	other threads:[~2007-11-20 18:43 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-20 18:43 Len Brown [this message]
2007-11-20 20:24 ` ACPI: disable stray GPE, prevent ACPI interrupt storm Moore, Robert
2007-11-20 23:11 ` Moore, Robert
2007-11-21  1:33   ` Zhang Rui
2007-11-30 22:15     ` Moore, Robert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200711201343.28940.lenb@kernel.org \
    --to=lenb@kernel.org \
    --cc=astarikovskiy@suse.de \
    --cc=linux-acpi@vger.kernel.org \
    --cc=robert.moore@intel.com \
    --cc=rui.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox