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>