panic upon kldunload snd_ich (lor # 159)

Pyun YongHyeon pyunyh at gmail.com
Wed Sep 14 21:34:16 PDT 2005


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.
-- 
Regards,
Pyun YongHyeon


More information about the freebsd-current mailing list