Date: Fri, 09 Nov 2012 15:46:02 +0200 From: Andriy Gapon <avg@FreeBSD.org> To: Tom Lislegaard <Tom.Lislegaard@proact.no> Cc: freebsd-acpi@FreeBSD.org Subject: Re: AcpiOsAcquireObject crash [Was: 9-Stable panic: resource_list_unreserve: can't find resource] Message-ID: <509D091A.8080108@FreeBSD.org> In-Reply-To: <E8A24BEFDC390C4491718DEE8A9C4F2092347A@Semail03.proact.local> References: <E8A24BEFDC390C4491718DEE8A9C4F2091F824@Semail03.proact.local> <509172F6.2040400@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F2091FC33@Semail03.proact.local> <5092F209.7090803@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F20920DD1@Semail03.proact <5093BECC.1030709@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F20921BAC@Semail03.proact.local> <50979BCD.3060000@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F20921C47@Semail03.proact.local> <5097CB27.8040802@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F20921C6A@Semail03.proact.local> <5097F24D.7040206@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F209220E2@Semail03.proact.local> <50995C8F.3040309@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F20922E13@Semail03.proact.local> <509B8F15.4030300@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F20922F57@Semail03.proact.local> <509BDF86.3080502@FreeBSD.org> <E8A24BEFDC390C4491718DEE8A9C4F2092347A@Semail03.proact.local>
next in thread | previous in thread | raw e-mail | index | archive | help
on 09/11/2012 14:17 Tom Lislegaard said the following: > kgdb) up 7 > #7 0xffffffff802d1bdd in AcpiOsAcquireObject (Cache=0xfffffe00052bac60) at /usr/src/sys/contrib/dev/acpica/utilities/utcache.c:316 > 316 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > (kgdb) x/9a Cache->ListHead > 0xfffffffeec85c730: Cannot access memory at address 0xfffffffeec85c730 [Slaps forehead] Ah, right, indeed. I guess the problem hasn't happened again since then? Does the patch appear to work OK so far (with respect to the original problem)? I have a suspicion about what causes the new problem. If it is correct then the following experimental patch may help with it: --- a/sys/contrib/dev/acpica/components/utilities/utdelete.c +++ b/sys/contrib/dev/acpica/components/utilities/utdelete.c @@ -415,6 +415,8 @@ AcpiUtUpdateRefCount ( return; } + (void) AcpiUtAcquireMutex (ACPI_MTX_REFCOUNTS); + Count = Object->Common.ReferenceCount; NewCount = Count; @@ -490,6 +492,8 @@ AcpiUtUpdateRefCount ( ACPI_WARNING ((AE_INFO, "Large Reference Count (0x%X) in object %p", Count, Object)); } + + (void) AcpiUtReleaseMutex (ACPI_MTX_REFCOUNTS); } --- a/sys/contrib/dev/acpica/include/aclocal.h +++ b/sys/contrib/dev/acpica/include/aclocal.h @@ -89,8 +89,9 @@ union acpi_parse_object; #define ACPI_MTX_MEMORY 5 /* Debug memory tracking lists */ #define ACPI_MTX_DEBUG_CMD_COMPLETE 6 /* AML debugger */ #define ACPI_MTX_DEBUG_CMD_READY 7 /* AML debugger */ +#define ACPI_MTX_REFCOUNTS 8 /* ACPI object reference counts */ -#define ACPI_MAX_MUTEX 7 +#define ACPI_MAX_MUTEX 8 #define ACPI_NUM_MUTEX ACPI_MAX_MUTEX+1 -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?509D091A.8080108>