Bug 4263
Summary: | AE_AML_BUFFER_LIMIT - D865GBF | ||
---|---|---|---|
Product: | ACPI | Reporter: | Martin Mokrejs (mmokrejs) |
Component: | ACPICA-Core | Assignee: | Robert Moore (Robert.Moore) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | acpi-bugzilla, goldenfish |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.11-rc5 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: |
dmesg
dmidecode acpidmp dmesg with latest bios dmesg with "pnpacpi=off" ACPICA 20050303 patch to address AE_AML_BUFFER_LIMIT ACPICA 20050303 patch to address AE_AML_BUFFER_LIMIT (revised) dmesg after the patch #2 |
Description
Martin Mokrejs
2005-02-28 06:22:47 UTC
Created attachment 4610 [details]
dmesg
Created attachment 4611 [details]
dmidecode
Created attachment 4612 [details]
acpidmp
Created attachment 4613 [details]
dmesg with latest bios
I have updated to latest bios bf86510a.86a.0073.p23.ib.exe, but no luck. But
the messages maybe changed, slightly. Judge yourself.
Hmmm, seems we still have an AE_AML_BUFFER_LIMIT issue even with ACPICA 20050211. Do you still get error messages when you boot with "pnpacpi=off"? Created attachment 4619 [details]
dmesg with "pnpacpi=off"
The error is still in there, although haven't used diff to inspect details.
Roughly the same error with the D915GEV mobo. BIOS is borked. The MCTH method assumes that the Buffer lengths do not change, but they can be truncated during a string-to-buffer store, as per the ACPI spec: String to Buffer: If no buffer object exists, a new buffer object is created. If a buffer object already exists, it is completely overwritten. If the string is longer than the buffer, the string is truncated before copying. If the string is shorter than the buffer, the buffer size is reduced. In either case, the string is treated as a buffer, with each ASCII string character copied to one buffer byte. However the code below assumes that the buffer lengths are NOT changed after the stores. We are investigating a solution. Method (MCTH, 2, NotSerialized) { If (LLess (SizeOf (Arg0), SizeOf (Arg1))) { Return (Zero) } Add (SizeOf (Arg0), 0x01, Local0) Name (BUF0, Buffer (Local0) {}) Name (BUF1, Buffer (Local0) {}) Store (Arg0, BUF0) Store (Arg1, BUF1) While (Local0) { Decrement (Local0) If (LNot (LEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (BUF1, Local0))))) { Return (Zero) } } Return (One) } *** Bug 4271 has been marked as a duplicate of this bug. *** Created attachment 4656 [details]
ACPICA 20050303 patch to address AE_AML_BUFFER_LIMIT
Please verify that this patch from Bob Moore makes the issue go away.
It comments out the (new) code that truncates the buffer in this case --
reverting to the previous behaviour.
Created attachment 4657 [details]
ACPICA 20050303 patch to address AE_AML_BUFFER_LIMIT (revised)
please test this patch -- the previous one had a typo.
ribosome linux-2.6.11-rc5 # patch -p1 < ../acpi.patch patching file drivers/acpi/executer/exstorob.c patching file include/acpi/acconfig.h Hunk #1 FAILED at 64. 1 out of 1 hunk FAILED -- saving rejects to file include/acpi/acconfig.h.rej ribosome linux-2.6.11-rc5 # Well, patching the version number doesn't matter I believe, so I ignored that. Created attachment 4659 [details]
dmesg after the patch #2
The error is gone. Run diff to make sure what it has changed. I'm lazy now. ;)
|