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." [EMAIL PROTECTED] (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 | +=========================================================================+
--- 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
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to