cvs commit: src/sys/kern subr_power.c

Scott Long scottl at samsco.org
Wed Nov 9 13:56:06 GMT 2005


Bruce Evans wrote:
> On Wed, 9 Nov 2005, Warner Losh wrote:
> 
>>  Modified files:
>>    sys/kern             subr_power.c
>>  Log:
>>  Kick off the suspend sequence from the keyboard in a SWI rather than
>>  in the hardware interrupt context (even if it is likely just an
>>  ithread).  We don't document that suspend/resume routines are run from
>>  such a context and some of the things that happen in those routines
>>  aren't interrupt safe.  Since there's no real need to run from that
>>  context, this restores assumptions that suspend routines have made.
>>
>>  This fixes Thierry Herbelot's 'Trying to sleep while sleeping is
>>  prohibited' problem.
> 
> 
> Er, SWIs are interrupts too.  Trying to sleep in a SWI handler should
> cause the same message.  This commit uses the general taskqueue SWI
> handler.  taskqueue(9) implicitly says that only the taskqueue thread
> handler can sleep (it gives malloc(M_WAITOK) as an example of something
> that can only be done in thread context).
> 
> Bruce

You're right, but sleeping in SWI's has never been enforced.  CAM relies 
on it, for better or worse, and until that's fixed it's pointless to
start enforcing it.

Scott


More information about the cvs-src mailing list