Yes the framework will guarantee when quiesce() is invoked there will
be only a single thread running at LOCK_LEVEL on a single CPU.

Thanks,
Sherry

On Tue, Jun 17, 2008 at 03:41:37PM -0700, David Kahn wrote:
> 
> 
> James Carlson wrote:
> 
> >The problem is indicated above.  open(9E) is almost always "active" on
> >a serial port, because there are threads there snoozing away, waiting
> >for someone to assert DCD.
> 
> If that's the case, it's impossible to do this safely without
> locks. There's no way for the driver to guard against both
> threads being active at the same time.
> 
> I believe that the framework must guarantee that there will
> only be a single thread active in the driver at a time for
> this to work they way they want it to work. In that case,
> if quiesce(9e) is active, even if DCD is asserted, that thread
> won't become active at the same time that the driver is in
> quiesce(9e) and there won't be two threads competing over
> the registers/resources of the device.
> 
> -David

-- 
Sherry Moore, Solaris Core Kernel       http://blogs.sun.com/sherrym

Reply via email to