rpms/kernel/F-8 linux-2.6-acpi-disable-stray-interrupt-1.patch, NONE, 1.1 linux-2.6-acpi-disable-stray-interrupt-2.patch, NONE, 1.1 kernel.spec, 1.391, 1.392

Chuck Ebbert (cebbert) fedora-extras-commits at redhat.com
Wed Mar 19 16:42:29 UTC 2008


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv9816

Modified Files:
	kernel.spec 
Added Files:
	linux-2.6-acpi-disable-stray-interrupt-1.patch 
	linux-2.6-acpi-disable-stray-interrupt-2.patch 
Log Message:
* Wed Mar 19 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.24.3-46
- Stop endless stream of ACPI interrupt messages (#251744)


linux-2.6-acpi-disable-stray-interrupt-1.patch:

--- NEW FILE linux-2.6-acpi-disable-stray-interrupt-1.patch ---
From: Zhang Rui <rui.zhang at intel.com>
Date: Tue, 20 Nov 2007 18:38:59 +0000 (-0500)
Subject: ACPI: disable stray GPE, prevent ACPI interrupt storm
X-Git-Tag: v2.6.25-rc1~297^2~16^2
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=a7f9b1f24974da287771e2d70b30d9ca7bd66684

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 at intel.com>
Acked-by: Alexey Starikovskiy <astarikovskiy at suse.de>
Signed-off-by: Len Brown <len.brown at 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);

linux-2.6-acpi-disable-stray-interrupt-2.patch:

--- NEW FILE linux-2.6-acpi-disable-stray-interrupt-2.patch ---
From: Zhang Rui <rui.zhang at intel.com>
Subject: Disable stray GPE properly

Sighed-off-by: Zhang Rui <rui.zhang at intel.com>
---
 drivers/acpi/events/evgpe.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Index: linux-2.6/drivers/acpi/events/evgpe.c
===================================================================
--- linux-2.6.orig/drivers/acpi/events/evgpe.c
+++ linux-2.6/drivers/acpi/events/evgpe.c
@@ -248,7 +248,8 @@ acpi_status acpi_ev_disable_gpe(struct a
 
 	ACPI_FUNCTION_TRACE(ev_disable_gpe);
 
-	if (!(gpe_event_info->flags & ACPI_GPE_ENABLE_MASK)) {
+	if (gpe_event_info->flags &&
+		(!(gpe_event_info->flags & ACPI_GPE_ENABLE_MASK))) {
 		return_ACPI_STATUS(AE_OK);
 	}
 


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/kernel.spec,v
retrieving revision 1.391
retrieving revision 1.392
diff -u -r1.391 -r1.392
--- kernel.spec	19 Mar 2008 13:57:07 -0000	1.391
+++ kernel.spec	19 Mar 2008 16:41:29 -0000	1.392
@@ -680,6 +680,8 @@
 #Patch763: linux-2.6-acpi-video-fix-multiple-busses.patch
 Patch767: linux-2.6-acpi_ec_early_init_fix.patch
 Patch768: linux-2.6-acpi-fix-sizeof.patch
+Patch770: linux-2.6-acpi-disable-stray-interrupt-1.patch
+Patch771: linux-2.6-acpi-disable-stray-interrupt-2.patch
 Patch784: linux-2.6-acpi-eeepc-hotkey.patch
 
 Patch820: linux-2.6-compile-fixes.patch
@@ -1267,6 +1269,10 @@
 ApplyPatch linux-2.6-acpi_ec_early_init_fix.patch -R
 # acpi has a bug in the sizeof function causing thermal panics
 ApplyPatch linux-2.6-acpi-fix-sizeof.patch
+# properly disable stray interrupts in acpi
+ApplyPatch linux-2.6-acpi-disable-stray-interrupt-1.patch
+ApplyPatch linux-2.6-acpi-disable-stray-interrupt-2.patch
+
 # Eeepc hotkey driver
 ApplyPatch linux-2.6-acpi-eeepc-hotkey.patch
 
@@ -1929,6 +1935,9 @@
 
 
 %changelog
+* Wed Mar 19 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.24.3-46
+- Stop endless stream of ACPI interrupt messages (#251744)
+
 * Wed Mar 19 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.24.3-45
 - Add Penryn CPU support to the hwmon coretemp driver (#438073)
 




More information about the fedora-extras-commits mailing list