ACPI error on Compaq nc6220, FreeBSD 7.0

Jung-uk Kim jkim at FreeBSD.org
Fri Sep 14 13:28:29 PDT 2007


On Thursday 13 September 2007 02:23 pm, Jung-uk Kim wrote:
> [Sorry for the previous empty reply.]
>
> On Thursday 13 September 2007 02:16 pm, Jung-uk Kim wrote:
> > On Thursday 13 September 2007 01:59 pm, Denis wrote:
> > > On 9/13/07, Jung-uk Kim <jkim at freebsd.org> wrote:
> > > > Please remove spinlock_enter() and spinlock_exit() from
> > > > OsdSynch.c and retry.
> > >
> > > So I applied your patch, Nate's patch, removed spinlock_enter()
> > > and spinlock_exit() from OsdSynch.c and tried to to play a
> > > little with booting with ACPI:
> > > For the first time I could boot with ACPI and login to the
> > > system. But after several minutes I was unable to enter any
> > > symbol from the keyboard, however was able to switch between
> > > consoles (alt+Fx).
> > >
> > > Couple times got kernel panic:
> > > ---
> > > panic: _sx_xlock_hard: recursed on non recursive sx ACPI
> > > embedded controller  @
> > > /usr/src/sys/modules/acpi/acpi/../../../acpica/acpi_ec.c:209
> > >
> > > cpuid = 0
> > > KDB: enter: panic
> > > [thread: pid 8 tid 100018 ]
> > > Stopped at          kbd_enter+0x32: leave
> > > db>
> > > ---
>
> Actually I am seeing the same problem.

Can you try this patch *after* applying Nate's patch?  It should fix 
this problem.

Thanks,

Jung-uk Kim
-------------- next part --------------
--- src/sys/dev/acpica/acpi_ec.c.orig	2007-09-14 16:20:20.000000000 -0400
+++ src/sys/dev/acpica/acpi_ec.c	2007-09-14 16:08:04.000000000 -0400
@@ -624,6 +624,7 @@
     }
 
     /* Evaluate _Qxx to respond to the controller. */
+    EcUnlock(sc);
     snprintf(qxx, sizeof(qxx), "_Q%02X", Data);
     AcpiUtStrupr(qxx);
     Status = AcpiEvaluateObject(sc->ec_handle, qxx, NULL, NULL);
@@ -631,8 +632,6 @@
 	device_printf(sc->ec_dev, "evaluation of query method %s failed: %s\n",
 	    qxx, AcpiFormatException(Status));
     }
-
-    EcUnlock(sc);
 }
 
 /*


More information about the freebsd-acpi mailing list