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
