Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 May 1999 05:06:35 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        hibma@skylink.it, peter@netplex.com.au
Cc:        cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org
Subject:   Re: cvs commit: src/sys/sys kernel.h
Message-ID:  <199905061906.FAA06299@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>Anyway, tsleep() used to work because curproc was set to &proc0 very early,
>and the idle context was viable then, which meant that it did a spl0() for
>the halt and woke up on clock or hardware interrupts... (!)
>
>Hmm.. if I'm interpreting that right, we were breaking the splhigh() around
>the configure process and have been for a while...  I'll revert here and
>see exactly where it's happening..

tsleep() begins with the evil hack

	(if cold || panicstr) { splx(safepri); splx(s); return}

This hides problems with uninitialised and NULL curproc's.  We probably
uncovered some bugs by moving the setting of curproc after the unsetting
of cold.  Note that the hack breaks splhigh().  I think early calls to
tsleep() should be fatal.

Bruce


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199905061906.FAA06299>