enable acpi

Dinesh Nair dinesh at alphaque.com
Fri Apr 1 20:09:44 PST 2005


On 03/31/05 20:51 John Baldwin said the following:
> The problem is that the taskqueue_swi in 4.x doesn't have a thread 
> context that can be slept on via tsleep().  The fix would be to create a 
> kthread in which to run the ACPI tasks.  4.x already has one such 
> kthread for the taskqueue_thread taskqueue that you could use as a 
> reference if you wish to do this yourself.

thanx for the pointer, john. with your explanation, the fix was simple. 
since applying this, it's not paniced in over 24 hours of continuous 
running. patch attached. i'll also raise a PR for this.


-- 
Regards,                           /\_/\   "All dogs go to heaven."
dinesh at alphaque.com                (0 0)    http://www.alphaque.com/
+==========================----oOO--(_)--OOo----==========================+
| for a in past present future; do                                        |
|   for b in clients employers associates relatives neighbours pets; do   |
|   echo "The opinions here in no way reflect the opinions of my $a $b."  |
| done; done                                                              |
+=========================================================================+
-------------- next part --------------
--- sys/dev/acpica/Osd/OsdSchedule.c.orig	Thu Mar 31 00:35:42 2005
+++ sys/dev/acpica/Osd/OsdSchedule.c	Fri Apr  1 13:55:00 2005
@@ -192,7 +192,7 @@
     TASK_INIT(&at->at_task, pri, AcpiOsExecuteQueue, at);
 
 #if __FreeBSD_version < 500000
-    taskqueue_enqueue(taskqueue_swi, (struct task *)at);
+    taskqueue_enqueue(taskqueue_thread, (struct task *)at);
 #else
     taskqueue_enqueue(taskqueue_acpi, (struct task *)at);
 #endif


More information about the freebsd-hackers mailing list