Bug 4263 - AE_AML_BUFFER_LIMIT - D865GBF
Summary: AE_AML_BUFFER_LIMIT - D865GBF
Status: CLOSED CODE_FIX
Alias: None
Product: ACPI
Classification: Unclassified
Component: ACPICA-Core (show other bugs)
Hardware: i386 Linux
: P2 normal
Assignee: Robert Moore
URL:
Keywords:
: 4271 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-02-28 06:22 UTC by Martin Mokrejs
Modified: 2006-09-28 13:21 UTC (History)
2 users (show)

See Also:
Kernel Version: 2.6.11-rc5
Subsystem:
Regression: ---
Bisected commit-id:


Attachments
dmesg (16.40 KB, text/plain)
2005-02-28 06:23 UTC, Martin Mokrejs
Details
dmidecode (20.24 KB, text/plain)
2005-02-28 06:42 UTC, Martin Mokrejs
Details
acpidmp (81.27 KB, text/plain)
2005-02-28 06:42 UTC, Martin Mokrejs
Details
dmesg with latest bios (17.12 KB, text/plain)
2005-02-28 06:58 UTC, Martin Mokrejs
Details
dmesg with "pnpacpi=off" (17.40 KB, text/plain)
2005-03-01 01:59 UTC, Martin Mokrejs
Details
ACPICA 20050303 patch to address AE_AML_BUFFER_LIMIT (1.55 KB, patch)
2005-03-03 15:01 UTC, Len Brown
Details | Diff
ACPICA 20050303 patch to address AE_AML_BUFFER_LIMIT (revised) (2.46 KB, patch)
2005-03-03 16:59 UTC, Len Brown
Details | Diff
dmesg after the patch #2 (14.36 KB, text/plain)
2005-03-04 02:31 UTC, Martin Mokrejs
Details

Description Martin Mokrejs 2005-02-28 06:22:47 UTC
Distribution: gentoo
Hardware Environment: Intel D865GBF Desktop Board,
BIOS: BF86510A.86A.0043.P09.0308251408
Software Environment:
Problem Description:

Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
    ACPI-1138: *** Error: Method execution failed [\MCTH] (Node dff2ee60), 
AE_AML_BUFFER_LIMIT
    ACPI-1138: *** Error: Method execution failed [\OSFL] (Node dff2e560), 
AE_AML_BUFFER_LIMIT
    ACPI-1138: *** Error: Method execution failed [\_SB_.SYSM._CRS] (Node 
dff14fa0), AE_AML_BUFFER_L
IMIT
    ACPI-0158: *** Error: Method execution failed [\_SB_.SYSM._CRS] (Node 
dff14fa0), AE_AML_BUFFER_L
IMIT
pnp: PnPACPI: METHOD_NAME__CRS failure for PNP0c01
pnp: PnP ACPI: found 12 devices


Steps to reproduce:
Comment 1 Martin Mokrejs 2005-02-28 06:23:18 UTC
Created attachment 4610 [details]
dmesg
Comment 2 Martin Mokrejs 2005-02-28 06:42:01 UTC
Created attachment 4611 [details]
dmidecode
Comment 3 Martin Mokrejs 2005-02-28 06:42:23 UTC
Created attachment 4612 [details]
acpidmp
Comment 4 Martin Mokrejs 2005-02-28 06:58:01 UTC
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.
Comment 5 Len Brown 2005-03-01 00:20:50 UTC
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"? 
 
Comment 6 Martin Mokrejs 2005-03-01 01:59:40 UTC
Created attachment 4619 [details]
dmesg with "pnpacpi=off"

The error is still in there, although haven't used diff to inspect details.
Comment 7 RaXeT 2005-03-01 06:53:07 UTC
Roughly the same error with the D915GEV mobo. BIOS is borked.
Comment 8 Robert Moore 2005-03-01 10:31:47 UTC
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)
    }


Comment 9 Shaohua 2005-03-01 17:31:08 UTC
*** Bug 4271 has been marked as a duplicate of this bug. ***
Comment 10 Len Brown 2005-03-03 15:01:54 UTC
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.
Comment 11 Len Brown 2005-03-03 16:59:41 UTC
Created attachment 4657 [details]
ACPICA 20050303 patch to address AE_AML_BUFFER_LIMIT (revised)

please test this patch -- the previous one had a typo.
Comment 12 Martin Mokrejs 2005-03-04 02:28:39 UTC
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.
Comment 13 Martin Mokrejs 2005-03-04 02:31:08 UTC
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. ;)

Note You need to log in before you can comment on or make changes to this bug.