lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <94F2FBAB4432B54E8AACC7DFDE6C92E346A77908@ORSMSX101.amr.corp.intel.com>
Date:	Wed, 25 Apr 2012 21:39:14 +0000
From:	"Moore, Robert" <robert.moore@...el.com>
To:	Bjorn Helgaas <bhelgaas@...gle.com>
CC:	"sedat.dilek@...il.com" <sedat.dilek@...il.com>,
	"linux-acpi@...r.kernel.org" <linux-acpi@...r.kernel.org>,
	Len Brown <lenb@...nel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"Lin, Ming M" <ming.m.lin@...el.com>
Subject: RE: Warning: pnp 00:0b: can't evaluate _CRS: 12311

This disassembly might make more sense. From the looks of the ASL, several of the address base and length fields are being updated dynamically.  I don't see anything that would corrupt a resource descriptor, however.


Are we certain that the ACPI Error and pnp messages are directly related to the PNP0C02 device ID?

[    0.293699] system 00:0a: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.294032] ACPI Error: Invalid/unsupported resource descriptor: Type 0x00 (20120320/utresrc-650)
[    0.294037] pnp 00:0b: can't evaluate _CRS: 12311


Also, I was able to execute all of the _CRS methods in the DSDT here with no errors, except for the last one, under the MEM2 device. IGDS returned zero, so the method did not return a valid resource descriptor, just nothing:

Device: \_SB_.MEM2
Evaluating _CRS
ACPI Warning: For \_SB_.MEM2._CRS: Missing expected return value (20120420/nspredef-283)
ACPI Error: No object was returned from [\_SB_.MEM2._CRS] (Node 004B62A8), AE_NOT_EXIST (20120420/uteval-198)
AcpiWalkResources failed: AE_NOT_EXIST

            Device (^^MEM2)
            {
                Name (_HID, EisaId ("PNP0C01"))
                Name (_UID, 0x02)
                Name (CRS, ResourceTemplate ()
                {
                    Memory32Fixed (ReadWrite,
                        0x20000000,         // Address Base
                        0x00200000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0x40000000,         // Address Base
                        0x00200000,         // Address Length
                        )
                })
                Method (_CRS, 0, NotSerialized)
                {
                    If (IGDS)
                    {
                        Return (CRS)
                    }
                }



/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20120420-32 [Apr 20 2012]
 * Copyright (c) 2000 - 2012 Intel Corporation
 * 
 * Disassembly of dsdt.dat, Wed Apr 25 11:49:16 2012
 */

            Name (BUF0, ResourceTemplate ()
            {
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00004000,         // Address Length
                    _Y10)
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00008000,         // Address Length
                    _Y12)
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00001000,         // Address Length
                    _Y13)
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00001000,         // Address Length
                    _Y14)
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00000000,         // Address Length
                    _Y15)
                Memory32Fixed (ReadWrite,
                    0xFED20000,         // Address Base
                    0x00020000,         // Address Length
                    )
                Memory32Fixed (ReadOnly,
                    0xFED90000,         // Address Base
                    0x00004000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0xFED45000,         // Address Base
                    0x0004B000,         // Address Length
                    )
                Memory32Fixed (ReadOnly,
                    0xFF000000,         // Address Base
                    0x01000000,         // Address Length
                    )
                Memory32Fixed (ReadOnly,
                    0xFEE00000,         // Address Base
                    0x00100000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00001000,         // Address Length
                    _Y11)
            })
            Method (_CRS, 0, Serialized)
            {
                CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y10._BAS, RBR0)
                ShiftLeft (^^LPCB.RCBA, 0x0E, RBR0)
                CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y11._BAS, TBR0)
                Store (TBAB, TBR0)
                CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y11._LEN, TBLN)
                If (LEqual (TBAB, Zero))
                {
                    Store (Zero, TBLN)
                }

                CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y12._BAS, MBR0)
                ShiftLeft (MHBR, 0x0F, MBR0)
                CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y13._BAS, DBR0)
                ShiftLeft (DIBR, 0x0C, DBR0)
                CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y14._BAS, EBR0)
                ShiftLeft (EPBR, 0x0C, EBR0)
                CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y15._BAS, XBR0)
                ShiftLeft (PXBR, 0x1A, XBR0)
                CreateDWordField (BUF0, \_SB.PCI0.PDRC._Y15._LEN, XSZ0)
                ShiftRight (0x10000000, PXSZ, XSZ0)
                Return (BUF0)
            }
        }


> -----Original Message-----
> From: Bjorn Helgaas [mailto:bhelgaas@...gle.com]
> Sent: Wednesday, April 25, 2012 1:51 PM
> To: Moore, Robert
> Cc: sedat.dilek@...il.com; linux-acpi@...r.kernel.org; Len Brown;
> linux-kernel@...r.kernel.org; Lin, Ming M
> Subject: Re: Warning: pnp 00:0b: can't evaluate _CRS: 12311
> 
> On Wed, Apr 25, 2012 at 2:36 PM, Moore, Robert <robert.moore@...el.com>
> wrote:
> >> >>> [    0.294037] pnp 00:0b: can't evaluate _CRS: 12311
> >
> > It sure would be nice if this error message would include the full
> pathname to the _CRS method. As it stands, it is rather difficult to
> determine just what caused this.
> 
> Agreed.
> 
> I extracted and disassembled the acpidump.  There were five occurrences
> of PNP0C02:
> 
> DSDT.dsl  \_SB.PCI0.LPCB.LDRC (has a constant _CRS) DSDT.dsl
> \_SB.PCI0.LPCB.CWDT (has _HID INT3F0D and _CID PNP0C02, so doesn't
> match message) DSDT.dsl  \_SB.PCI0.PDRC SSDT1.dsl  \_SB.PTID (has no
> _CRS and has _HID INT340E and _CID PNP0C02, so doesn't match message)
> SSDT4.dsl  \_SB.IFFS (has no _CRS)
> 
> So I think PDRC must be the one causing the trouble.  Its _CRS runs
> some AML, but I'm not AML-savvy enough to figure it out:
> 
>     Scope (_SB.PCI0)
>     {
>         Device (PDRC)
>         {
>             Name (_HID, EisaId ("PNP0C02"))
>             Name (_UID, One)
>             Name (BUF0, ResourceTemplate ()
>             {
>                 Memory32Fixed (ReadWrite,
>                     0x00000000,         // Address Base
>                     0x00004000,         // Address Length
>                     )
>                 Memory32Fixed (ReadWrite,
>                     0x00000000,         // Address Base
>                     0x00008000,         // Address Length
>                     )
>                 Memory32Fixed (ReadWrite,
>                     0x00000000,         // Address Base
>                     0x00001000,         // Address Length
>                     )
>                 Memory32Fixed (ReadWrite,
>                     0x00000000,         // Address Base
>                     0x00001000,         // Address Length
>                     )
>                 Memory32Fixed (ReadWrite,
>                     0x00000000,         // Address Base
>                     0x00000000,         // Address Length
>                     )
>                 Memory32Fixed (ReadWrite,
>                     0xFED20000,         // Address Base
>                     0x00020000,         // Address Length
>                     )
>                 Memory32Fixed (ReadOnly,
>                     0xFED90000,         // Address Base
>                     0x00004000,         // Address Length
>                     )
>                 Memory32Fixed (ReadWrite,
>                     0xFED45000,         // Address Base
>                     0x0004B000,         // Address Length
>                     )
>                 Memory32Fixed (ReadOnly,
>                     0xFF000000,         // Address Base
>                     0x01000000,         // Address Length
>                     )
>                 Memory32Fixed (ReadOnly,
>                     0xFEE00000,         // Address Base
>                     0x00100000,         // Address Length
>                     )
>                 Memory32Fixed (ReadWrite,
>                     0x00000000,         // Address Base
>                     0x00001000,         // Address Length
>                     )
>             })
>             Method (_CRS, 0, Serialized)
>             {
>                 CreateDWordField (BUF0, 0x04, RBR0)
>                 ShiftLeft (^^LPCB.RCBA, 0x0E, RBR0)
>                 CreateDWordField (BUF0, 0x7C, TBR0)
>                 Store (TBAB, TBR0)
>                 CreateDWordField (BUF0, 0x80, TBLN)
>                 If (LEqual (TBAB, Zero))
>                 {
>                     Store (Zero, TBLN)
>                 }
> 
>                 CreateDWordField (BUF0, 0x10, MBR0)
>                 ShiftLeft (MHBR, 0x0F, MBR0)
>                 CreateDWordField (BUF0, 0x1C, DBR0)
>                 ShiftLeft (DIBR, 0x0C, DBR0)
>                 CreateDWordField (BUF0, 0x28, EBR0)
>                 ShiftLeft (EPBR, 0x0C, EBR0)
>                 CreateDWordField (BUF0, 0x34, XBR0)
>                 ShiftLeft (PXBR, 0x1A, XBR0)
>                 CreateDWordField (BUF0, 0x38, XSZ0)
>                 ShiftRight (0x10000000, PXSZ, XSZ0)
>                 Return (BUF0)
>             }
>         }
>     }
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ