Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Oct 2010 17:01:09 -0700
From:      "Moore, Robert" <robert.moore@intel.com>
To:        Hans Petter Selasky <hselasky@c2i.net>, "freebsd-acpi@freebsd.org" <freebsd-acpi@freebsd.org>
Cc:        "Lin, Ming M" <ming.m.lin@intel.com>
Subject:   RE: MacBookPro 5,1
Message-ID:  <4911F71203A09E4D9981D27F9D830858BBFA3B2F@orsmsx503.amr.corp.intel.com>
In-Reply-To: <201010171547.56445.hselasky@c2i.net>
References:  <201010121209.06397.hselasky@c2i.net> <201010131958.02252.jkim@FreeBSD.org>	<201010171056.12606.hselasky@c2i.net> <201010171547.56445.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Can you send us the acpidump for the machine?

Also, tell us which control method is failing.

Thanks


>-----Original Message-----
>From: owner-freebsd-acpi@freebsd.org [mailto:owner-freebsd-
>acpi@freebsd.org] On Behalf Of Hans Petter Selasky
>Sent: Sunday, October 17, 2010 6:48 AM
>To: freebsd-acpi@freebsd.org
>Cc: linux-acpi@vger.kernel.org
>Subject: Re: MacBookPro 5,1
>
>Hi,
>
>CC'ing the Linux guys, hence I belive you are using the same ACPI code lik=
e
>in
>FreeBSD.
>
>It appears that when a string is present in the extended interrupt
>descriptor
>(6.4.3.6, ACPIspec30.pdf), then this is not handled correctly, meaning tha=
t
>the precomputed buffer space when encoding to AML, is incorrect and that
>data
>is written beyond the destination buffer!
>
>The error is catched on a MacBookPro 5,1 and is visible if you zero-pad al=
l
>ACPI allocations to 4096 bytes, and verify that the freed buffer is not
>written beyond the allocation. Also the Extended interrupt descriptor must
>be
>the last element encoded in the AML.
>
>The quick patch is to disable these elements. I tried to figure out why
>this
>happens, but this particular handling in the code looks very obfuscated to
>me.
>
>src/sys/contrib/dev/acpica
>%svk diff
>=3D=3D=3D resources/rsmisc.c
>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>--- resources/rsmisc.c  (revision 213698)
>+++ resources/rsmisc.c  (local)
>@@ -311,6 +311,8 @@
>
>
>         case ACPI_RSC_SOURCEX:
>+               break;  /* RSC_SOURCEX is broken */
>+
>             /*
>              * Optional ResourceSource (Index and String). This is the
>more
>              * complicated case used by the Interrupt() macro
>@@ -537,6 +539,8 @@
>
>
>         case ACPI_RSC_SOURCEX:
>+               break;  /* RSC_SOURCEX is broken */
>+
>             /*
>              * Optional ResourceSource (Index and String)
>              */
>
>
>Any comments are welcome!
>
>--HPS
>
>Please keep me CC'ed.
>_______________________________________________
>freebsd-acpi@freebsd.org mailing list
>http://lists.freebsd.org/mailman/listinfo/freebsd-acpi
>To unsubscribe, send any mail to "freebsd-acpi-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4911F71203A09E4D9981D27F9D830858BBFA3B2F>