-----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-----
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
 
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to