Module Name: src
Committed By: cegger
Date: Mon Aug 17 15:36:10 UTC 2009
Modified Files:
src/sys/dist/acpica: hwregs.c
Log Message:
Apply fix from upstream:
http://git.moblin.org/cgit.cgi/acpica/commit/?id=26a2eea9f4a18acb0ba2a92070d945d9835df948
I uncovered the bug by having the console flooded with:
ACPI Error (evgpe-0896): No handler or method for GPE[ 0], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[ 1], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[ 2], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[ 4], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[ 5], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[ 6], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[ 7], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[ 8], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[ 9], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[ A], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[ B], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[ C], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[ D], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[ E], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[ F], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[10], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[11], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[12], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[13], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[14], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[15], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[16], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[17], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[18], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[19], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[1A], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[1B], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[1C], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[1D], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[1E], disabling event
[20080321]
ACPI Error (evgpe-0896): No handler or method for GPE[1F], disabling event
[20080321]
and with breaking into ddb:
ACPI Error (evgpe-0899): No handler or method for GPE[ 0], disabling event
[20080321]
fatal breakpoint trap in supervisor mode
trap type 1 code 0 rip ffffffff8020c1fd cs e030 rflags 296 cr2 0 cpl 8 rsp
ffffffff80f32c98
Stopped in pid 0.1 (system) at netbsd:breakpoint+0x5: leave
breakpoint() at netbsd:breakpoint+0x5
AcpiEvGpeDispatch() at netbsd:AcpiEvGpeDispatch+0x9f
AcpiEvGpeDetect() at netbsd:AcpiEvGpeDetect+0x136
AcpiEvSciXruptHandler() at netbsd:AcpiEvSciXruptHandler+0x46
Xresume_xenev6() at netbsd:Xresume_xenev6+0x55
With this merged fix console is no longer flooded and I get in dmesg:
ACPI Exception (evevent-0165): AE_BAD_ADDRESS, Unable to initialize fixed
events [20080321]
acpi0: unable to enable ACPI: AE_BAD_ADDRESS
Upstream fix pointed out by jmcneill@, merged fix ok'd by jo...@.
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/dist/acpica/hwregs.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dist/acpica/hwregs.c
diff -u src/sys/dist/acpica/hwregs.c:1.4 src/sys/dist/acpica/hwregs.c:1.5
--- src/sys/dist/acpica/hwregs.c:1.4 Sat Apr 12 16:16:08 2008
+++ src/sys/dist/acpica/hwregs.c Mon Aug 17 15:36:10 2009
@@ -3,7 +3,7 @@
*
* Module Name: hwregs - Read/write access functions for the various ACPI
* control and status registers.
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
******************************************************************************/
@@ -869,13 +869,12 @@
/*
- * Must have a valid pointer to a GAS structure, and
- * a non-zero address within. However, don't return an error
- * because the PM1A/B code must not fail if B isn't present.
+ * Must have a valid pointer to a GAS structure, and a non-zero address
+ * within.
*/
if (!Reg)
{
- return (AE_OK);
+ return (AE_BAD_PARAMETER);
}
/* Get a local copy of the address. Handles possible alignment issues */
@@ -883,7 +882,7 @@
ACPI_MOVE_64_TO_64 (&Address, &Reg->Address);
if (!Address)
{
- return (AE_OK);
+ return (AE_BAD_ADDRESS);
}
*Value = 0;
@@ -949,13 +948,12 @@
/*
- * Must have a valid pointer to a GAS structure, and
- * a non-zero address within. However, don't return an error
- * because the PM1A/B code must not fail if B isn't present.
+ * Must have a valid pointer to a GAS structure, and a non-zero address
+ * within.
*/
if (!Reg)
{
- return (AE_OK);
+ return (AE_BAD_PARAMETER);
}
/* Get a local copy of the address. Handles possible alignment issues */
@@ -963,7 +961,7 @@
ACPI_MOVE_64_TO_64 (&Address, &Reg->Address);
if (!Address)
{
- return (AE_OK);
+ return (AE_BAD_ADDRESS);
}
/*