panic upon kldunload snd_ich (lor # 159)
skywizard at MyBSD.org.my
Wed Sep 14 23:35:54 PDT 2005
On Thu, 15 Sep 2005 13:34:48 +0900
Pyun YongHyeon <pyunyh at gmail.com> wrote:
> On Thu, Sep 15, 2005 at 11:46:53AM +0800, Ariff Abdullah wrote:
> > On Thu, 15 Sep 2005 10:45:09 +0900
> > Pyun YongHyeon <pyunyh at gmail.com> wrote:
> > >
> > > That would be supposed to fix the LOR message. But I'd like to
> > > keep lock ordering between snd_mutex and sndstat_lock. Since
> > > sndstat_read() could be called at any time there is an implicit
> > > lock order. I think switching to sx lock from mutex in sndstat
> > > code was to allow uiomove with lock held. IMO, it would be even
> > > better to rewrite sndstat_read() without using uiomove such that
> > > it can also use standard mutex rather than sx lock.
> > >
> > I tend to agree with you. Since that sndstat_busy() isn't enough,
> > how about we acquire the entire sndstat so nobody can monkey with
> > it (as the proposed / attached diff) and at the same time avoiding
> > this LOR message. It seems much better rather than locking sndstat
> > after sndstat_busy() and much of pcm_unregister() procedures, only
> > to find out that somebody acquire it within that moment.
> I didn't try the patch but it looks good to me. :-)
> If you have more time would you please fix race in sndstat_open()?
> Minor note : I think it is better to use sx_xunlock ranther than
> sx_unlock as sx_xunlock clearly indicates which type of locks held.
o my, that was a mass typo. Will fix it.
More information about the freebsd-current