Date: Wed, 19 Jun 2002 19:55:30 +0100 From: Ian Dowse <iedowse@maths.tcd.ie> To: Andy Sporner <sporner@nentec.de> Cc: freebsd-hackers <freebsd-hackers@FreeBSD.ORG> Subject: Re: Kernel Panic using kproc_exit() on FreeBSD 5.0-20020302-PREVIEW Message-ID: <200206191955.aa29511@salmon.maths.tcd.ie> In-Reply-To: Your message of "Mon, 17 Jun 2002 11:47:13 %2B0200." <3D0DB021.4080102@nentec.de>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <3D0DB021.4080102@nentec.de>, Andy Sporner writes: >SYSINIT(modtcpd, SI_SUB_KTHREAD_BUF, SI_ORDER_FIRST, kproc_start, &kp) >static void modtcpd(void) >{ > tsleep(0x0dead0001, 0, "General Wait", 400); > kthread_exit(0); >} ... >panic: mutex Giant not owned at ../../../kern/kern_exit.c"131 If you haven't guessed already by looking at other kernel threads, you need to "mtx_lock(&Giant);" before calling kthread_exit(). Most kthreads acquire Giant at the start and hold it throughout their execution (it it implicitly dropped when the thread is sleeping). You should do this too unless you are sure that all operations that the thread is performing are safe to do without Giant. Ian To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi? <200206191955.aa29511>