James Carlson wrote:
> David Kahn writes:
>   
>
>   
>> the guarantee is that open, close, attach, detach and other driver
>> entry points will not be active or called when the framework calls
>> quiesce(9e). That still leaves the question of interrupt handlers,
>> timers, callbacks, etc that could be called when the driver is
>> in quiesce(9e) or might be active when the quiesce(9e) is called.
>>     
>
> That means the system can never call quiesce(9E) on (at least) serial
> ports.  That doesn't sound like a good answer to me.
>   

Why?  It seems (to me at least), that if there is something that needs a 
timeout, the quiesce routine should be able to discover that a timeout 
was pending, and poll for completion on its own.

Maybe I'm just not understanding your concern here.


>> It seems like what you want to do is stop interrupt dispatch,
>> stop callback threads, timer callbacks, soft ints, etc, and then
>> just call into the driver to tell it to stop whatever it might be
>>     
>
> I don't see how that's possible.  There's nothing in the system that
> knows about existing timeout(9F) callout records on a per-driver
> basis, so there's no way to stop them before entry.
>   

Not individually, but *all* interrupts would be stopped.  The system 
should be running with all interrupts on the CPU disabled.

    -- Garrett

Reply via email to