Date: Wed, 12 Jul 2006 22:29:28 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: nate@root.org Cc: current@FreeBSD.ORG Subject: Re: cbb hangs during suspend if ath card active Message-ID: <20060712.222928.-432837032.imp@bsdimp.com> In-Reply-To: <44B59A22.7000407@root.org> References: <44B59A22.7000407@root.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <44B59A22.7000407@root.org>
Nate Lawson <nate@root.org> writes:
: I've seen a recent regression in the past few months when suspending my
: laptop. When I have an ath0 card inserted in a cardbus slot and then
: press the sleep button, the system hangs. If I eject the card, it
: continues going into suspend and everything works as normal.
:
: If the card is up (ifconfig up), this process hangs. If it's down, no
: hang and it suspends normally. I did some debugging by starting the
: suspend, waiting for the hang, hitting "break to ddb", and then ejecting
: the card. The eject causes an interrupt which causes ddb to be entered.
: With ps, I can see that the thread on the acpi_taskq is running the
: button event and then calling bus_generic_suspend(), which eventually
: calls cbb_detach(), which then calls a power routine in pccbb.c. This
: routine calls tsleep() (wchan "cbbP3") which never wakes up.
:
: Any idea why tsleep() is not waking up now? It seems tsleep() calls
: mi_switch() and never returns.
Maybe the timers have been stopped and not properly restored by this
time? Maybe we're calling the resume routines from a bad place that
we can't sleep... APM had this problem...
I'd love to test things like this, but I've not had a laptop in the
past 5 years that can successfully suspend/resume under freebsd, even
with minimal drivers :-(
Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060712.222928.-432837032.imp>
