From: | "Simon 'corecode' Schubert" <corecode@xxxxxxxxxxxx> |
Date: | Thu, 30 Nov 2006 14:57:31 +0100 |
:- hand-rolled locking code in AcpiOs{Acquire,Release}Lock() functions: : ACPI-CA code has been rewritten in 20060623 to make these functions : to be used as spinlock functions, and called from many places where : they weren't before. Since our implementation of these locking functions : used lockmgr lock, which cannot be called from cpu_idle(), this led to : a panic(mainly when my laptop wakes up from sleep state). After struggling : with other locking primitives, I ended up with critical section and : special-cased the idlethread. I believed this shouldn't make the situation : worse, as ACPI functions called from cpu_idle_hook code in acpi_cpu did : not using locking before. But I'm open to a better implementation, : especially how to deal with locking when called from idlethread. You could probably use tokens here, but a critical section ought to work as well since ACPI functions are only called from cpu #0.Does that apply to ioctl or sysctl support code, too? Can you shed some light on me to find how it's guaranteed?
cheers simon
-- Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\ Work - Mac +++ space for low €€€ NOW!1 +++ Campaign \ / Party Enjoy Relax | http://dragonflybsd.org Against HTML \ Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \
Attachment:
signature.asc
Description: OpenPGP digital signature