Most recent kernel where this bug did not occur: I think it's always occurred. Distribution: Fedora Devel (rawhide) Hardware Environment: Toshiba Satellite M45 Problem Description: I regularly get odd looking, ACPI related messages in my system log. I'm running Fedora Devel, so my kernel fairly closely matches Linus' tree. Here's a snippet of some of the error messages I'm getting out of a 2.6.15-rc5ish FC devel kernel: ACPI-0258: *** Error: Thread 9BD cannot release Mutex [MUT1] acquired by thread 845 ACPI-0508: *** Error: Method execution failed [\_SB_.RDEC] (Node df6ca4b4), AE_AML_NOT_OWNER ACPI-0508: *** Error: Method execution failed [\_SB_.LID0._LID] (Node df6e04e0), AE_AML_NOT_OWNER ACPI-0258: *** Error: Thread 9BD cannot release Mutex [MUT1] acquired by thread 9B1 ACPI-0508: *** Error: Method execution failed [\_SB_.RDEC] (Node df6ca4b4), AE_AML_NOT_OWNER ACPI-0508: *** Error: Method execution failed [\_SB_.LID0._LID] (Node df6e04e0), AE_AML_NOT_OWNER ACPI-0258: *** Error: Thread 9BD cannot release Mutex [MUT1] acquired by thread 845 ACPI-0508: *** Error: Method execution failed [\_SB_.RDEC] (Node df6ca4b4), AE_AML_NOT_OWNER ACPI-0508: *** Error: Method execution failed [\_SB_.LID0._LID] (Node df6e04e0), AE_AML_NOT_OWNER ACPI-0258: *** Error: Thread 9BD cannot release Mutex [MUT1] acquired by thread 9B1 ACPI-0508: *** Error: Method execution failed [\_SB_.RDEC] (Node df6ca4b4), AE_AML_NOT_OWNER ACPI-0508: *** Error: Method execution failed [\_SB_.LID0._LID] (Node df6e04e0), AE_AML_NOT_OWNER ACPI-0258: *** Error: Thread 9 cannot release Mutex [MUT1] acquired by thread 9BD ACPI-0508: *** Error: Method execution failed [\_SB_.RDEC] (Node df6ca4b4), AE_AML_NOT_OWNER ACPI-0508: *** Error: Method execution failed [\_SB_.PCI0.LPCB.EC0_._Q13] (Node df6c72fc), AE_AML_NOT_OWNER ACPI-0258: *** Error: Thread 9BD cannot release Mutex [MUT1] acquired by thread 845 ACPI-0508: *** Error: Method execution failed [\_SB_.RDEC] (Node df6ca4b4), AE_AML_NOT_OWNER ACPI-0508: *** Error: Method execution failed [\_SB_.LID0._LID] (Node df6e04e0), AE_AML_NOT_OWNER ACPI-0258: *** Error: Thread 9BD cannot release Mutex [MUT1] acquired by thread 845 ACPI-0508: *** Error: Method execution failed [\_SB_.RDEC] (Node df6ca4b4), AE_AML_NOT_OWNER ACPI-0508: *** Error: Method execution failed [\_SB_.LID0._LID] (Node df6e04e0), AE_AML_NOT_OWNER ipw2200: Unknown notification: subtype=40,flags=0xa0,size=40 ACPI-0240: *** Error: Cannot release Mutex [MUT1], not acquired ACPI-0508: *** Error: Method execution failed [\_SB_.RDEC] (Node df6ca4b4), AE_AML_MUTEX_NOT_ACQUIRED ACPI-0508: *** Error: Method execution failed [\_SB_.BAT1._BST] (Node df6e05bc), AE_AML_MUTEX_NOT_ACQUIRED ACPI-0258: *** Error: Thread 9BD cannot release Mutex [MUT1] acquired by thread 9B1 ACPI-0508: *** Error: Method execution failed [\_SB_.RDEC] (Node df6ca4b4), AE_AML_NOT_OWNER ACPI-0508: *** Error: Method execution failed [\_SB_.LID0._LID] (Node df6e04e0), AE_AML_NOT_OWNER ACPI-0258: *** Error: Thread 9BD cannot release Mutex [MUT1] acquired by thread 9B1 ACPI-0508: *** Error: Method execution failed [\_SB_.RDEC] (Node df6ca4b4), AE_AML_NOT_OWNER ACPI-0508: *** Error: Method execution failed [\_SB_.LID0._LID] (Node df6e04e0), AE_AML_NOT_OWNER
Please post the acpidump for this machine, thanks.
Created attachment 6830 [details] acpidump output
There appears to be a bug in the BIOS ASL Code where a timeout could happen on an Acquire, but the code does not check for this and just blindly releases the mutex even if it was not acquired, causing the exception. The problem is that the 0x0FFF timeout should probably be 0xFFFF which is WAIT_FOREVER (looks like a typo). You could fix this and override the DSDT. Note, there are two cases of this in the ASL, one is shown below. Also, you might try setting the global acpi_serialized flag to disallow method reentrancy. The BIOS vendor should be notified of this problem. This is not a bug in ACPICA or any ACPI related code. Method (RDEC, 1, NotSerialized) { Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0x0FFF) If (BCMD) { Sleep (0x02) } Store (Arg0, BINX) Store (0x01, BCMD) Sleep (0x01) If (BCMD) { Sleep (0x02) } Store (BDAT, Local0) Release (\_SB.PCI0.LPCB.EC0.MUT1) Return (Local0) }
Thanks, I'll see if Toshiba has an update for my model. I'm not too keen on overwriting my DSDT though, so if they don't have one I'll just live with the warnings I guess.