LOR acpi_ibm module
John Baldwin
jhb at freebsd.org
Wed Sep 9 19:08:55 UTC 2009
On Wednesday 09 September 2009 2:25:13 pm Jung-uk Kim wrote:
> On Wednesday 09 September 2009 01:49 pm, Felix Stolba wrote:
> > Brandon Gooch schrieb:
> > > lock order reversal:
> > > 1st 0xffffffff807cf200 sysctl lock (sysctl lock) @
> > > /usr/src/sys/kern/kern_sysctl.c:1608
> > > 2nd 0xffffffff80bf1de0 ACPI IBM extras (ACPI IBM extras) @
> > > /usr/src/sys/modules/acpi/acpi_ibm/../../../dev/acpi_support/acpi
> > >_ibm.c:481 KDB: stack backtrace:
> > > db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
> > > _witness_debugger() at _witness_debugger+0x2e
> > > witness_checkorder() at witness_checkorder+0x81e
> > > _sx_xlock() at _sx_xlock+0x54
> > > acpi_ibm_sysctl() at acpi_ibm_sysctl+0x4f
> > > sysctl_root() at sysctl_root+0xe3
> > > userland_sysctl() at userland_sysctl+0x158
> > > __sysctl() at __sysctl+0xaa
> > > syscall() at syscall+0x1dd
> > > Xfast_syscall() at Xfast_syscall+0xd0
> > > --- syscall (202, FreeBSD ELF64, __sysctl), rip = 0x80073769c,
> > > rsp = 0x7fffffffda58, rbp = 0x4 ---
> >
> > I'm getting the same LOR at boot in 9.0-current (source from 7th of
> > september).
>
> It is generally harmless but really annoying.
Actually, we can just remove the pointless locking from attach to fix this I
think. You don't need locking in attach while you are adding the sysctls,
etc. since no other threads can "get" to the acpi_ibm data yet. This patch
should fix the LOR:
Index: acpi_ibm.c
===================================================================
--- acpi_ibm.c (revision 196974)
+++ acpi_ibm.c (working copy)
@@ -356,8 +356,6 @@
}
sc->ec_handle = acpi_get_handle(sc->ec_dev);
- ACPI_SERIAL_BEGIN(ibm);
-
/* Get the sysctl tree */
sc->sysctl_ctx = device_get_sysctl_ctx(dev);
sc->sysctl_tree = device_get_sysctl_tree(dev);
@@ -404,8 +402,6 @@
"Thermal zones");
}
- ACPI_SERIAL_END(ibm);
-
/* Handle notifies */
AcpiInstallNotifyHandler(sc->handle, ACPI_DEVICE_NOTIFY,
acpi_ibm_notify, dev);
--
John Baldwin
More information about the freebsd-current
mailing list