From owner-freebsd-current@FreeBSD.ORG Thu Jan 24 00:56:23 2013 Return-Path: Delivered-To: current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 03E3270; Thu, 24 Jan 2013 00:56:23 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from hammer.pct.niksun.com (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id A5DEEB2C; Thu, 24 Jan 2013 00:56:22 +0000 (UTC) Message-ID: <51008661.4060006@FreeBSD.org> Date: Wed, 23 Jan 2013 19:54:57 -0500 From: Jung-uk Kim User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130116 Thunderbird/17.0.2 MIME-Version: 1.0 To: Pawel Jakub Dawidek Subject: Re: ACPI panic on unplugging the power cord. References: <20130122175629.GA1714@garage.freebsd.pl> In-Reply-To: <20130122175629.GA1714@garage.freebsd.pl> X-Enigmail-Version: 1.4.6 Content-Type: multipart/mixed; boundary="------------080405050404060205050101" Cc: current@FreeBSD.org X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jan 2013 00:56:23 -0000 This is a multi-part message in MIME format. --------------080405050404060205050101 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 2013-01-22 12:56:29 -0500, Pawel Jakub Dawidek wrote: > I just upgraded to HEAD today and was wondering what will explode. > Now I know. > > When I unplug power cord from my laptop, ACPI panics. Pictures > here: > > http://people.freebsd.org/~pjd/misc/acpi_panic_0.jpg > http://people.freebsd.org/~pjd/misc/acpi_panic_1.jpg > > Let me know if you need more info. Can you please try the attached patch? It is also available from here: http://people.freebsd.org/~jkim/utcache.diff Please note the patch may or may not fix the problem but I think I found an ancient bug. :-( Thanks, Jung-uk Kim -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iQEcBAEBAgAGBQJRAIZhAAoJECXpabHZMqHOWl8H/3pUGshUkzCNbEOQHoZOYXMW TtLaUqdV3/zYGEYDYl5Tbxv2JUz4tWDU5KlWhnZk+MjNnR1+g0fgzQu3mK056NU+ rpZucEnoaEeKriLpd+Hsw3Y28eXiY8/9T8/SnFMUW7AS6HZk8G7itdu9cx9A+IY6 A2tQBIpDXes4a5BLNZzyP/2dSMrcKVeS28+fZlxGdWWakFs5/FWYguK5kR2PIkCS 3yh8vEv7XH8WJz+sK/v/jcpcxt+heCG+j8XIwJieqk1CDXaCtH6g+4mlKQogsZY1 1YSYaGE+/szNvnR9UjW1+x/mhA5atFa9ysCq96zvVOs/Ih7X9Id4fZ6laetSDIs= =rUXs -----END PGP SIGNATURE----- --------------080405050404060205050101 Content-Type: text/x-patch; name="utcache.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="utcache.diff" Index: sys/contrib/dev/acpica/components/utilities/utcache.c =================================================================== --- sys/contrib/dev/acpica/components/utilities/utcache.c (revision 245848) +++ sys/contrib/dev/acpica/components/utilities/utcache.c (working copy) @@ -95,7 +95,6 @@ AcpiOsCreateCache ( /* Populate the cache object and return it */ ACPI_MEMSET (Cache, 0, sizeof (ACPI_MEMORY_LIST)); - Cache->LinkOffset = 8; Cache->ListName = CacheName; Cache->ObjectSize = ObjectSize; Cache->MaxDepth = MaxDepth; @@ -121,7 +120,7 @@ ACPI_STATUS AcpiOsPurgeCache ( ACPI_MEMORY_LIST *Cache) { - char *Next; + void *Next; ACPI_STATUS Status; @@ -145,8 +144,7 @@ AcpiOsPurgeCache ( { /* Delete and unlink one cached state object */ - Next = *(ACPI_CAST_INDIRECT_PTR (char, - &(((char *) Cache->ListHead)[Cache->LinkOffset]))); + Next = ((ACPI_OBJECT_COMMON *) Cache->ListHead)->NextObject; ACPI_FREE (Cache->ListHead); Cache->ListHead = Next; @@ -251,8 +249,7 @@ AcpiOsReleaseObject ( /* Put the object at the head of the cache list */ - * (ACPI_CAST_INDIRECT_PTR (char, - &(((char *) Object)[Cache->LinkOffset]))) = Cache->ListHead; + ((ACPI_OBJECT_COMMON *) Object)->NextObject = Cache->ListHead; Cache->ListHead = Object; Cache->CurrentDepth++; @@ -307,8 +304,7 @@ AcpiOsAcquireObject ( /* There is an object available, use it */ Object = Cache->ListHead; - Cache->ListHead = *(ACPI_CAST_INDIRECT_PTR (char, - &(((char *) Object)[Cache->LinkOffset]))); + Cache->ListHead = ((ACPI_OBJECT_COMMON *) Object)->NextObject; Cache->CurrentDepth--; Index: sys/contrib/dev/acpica/include/actypes.h =================================================================== --- sys/contrib/dev/acpica/include/actypes.h (revision 245848) +++ sys/contrib/dev/acpica/include/actypes.h (working copy) @@ -1226,7 +1226,6 @@ typedef struct acpi_memory_list UINT16 ObjectSize; UINT16 MaxDepth; UINT16 CurrentDepth; - UINT16 LinkOffset; #ifdef ACPI_DBG_TRACK_ALLOCATIONS --------------080405050404060205050101--