kern/146031: [snd_hda] race condition when kldunload snd_hda sound called

Garrett Cooper gcooper at
Sun Apr 25 23:40:06 UTC 2010

The following reply was made to PR kern/146031; it has been noted by GNATS.

From: Garrett Cooper <gcooper at>
To: Garrett Cooper <gcooper at>
Cc: Alexander Best <alexbestms at>, bug-followup at
Subject: Re: kern/146031: [snd_hda] race condition when kldunload snd_hda 
	sound called
Date: Sun, 25 Apr 2010 16:34:53 -0700

 Sorry... forgot to answer the questions.
 On Sun, Apr 25, 2010 at 4:31 PM, Garrett Cooper <gcooper at> wrote:
 > On Sun, Apr 25, 2010 at 4:26 AM, Alexander Best <alexbestms at> wrote:
 >> running
 >> sh -c 'i=1; while [ 1 ] ; do echo "Try $i"; kldload snd_hda; kldunload snd_hda
 >> sound; : $(( i += 1 )); done'
 >> complains about sound.ko not being loaded, since unloading snd_hda.ko also
 >> unloads sound.ko. is this what you got too?
     Yes, because it's kldunload(2) unloads all dependent modules for
 snd_hda.ko not in use (in this case sound.ko).
 >> i'm not sure this logic is correct. loading snd_hda.ko also loads sound.ko,
 >> since it depends on it. however i don't see why unloading snd_hda.ko also
 >> unloads sound.ko, since sound.ko has no dependencies and can exist without any
 >> snd_*.ko module.
     The point was that there's a race condition if the time between
 both snd_hda.ko and sound.ko was done, s.t. not all of the pieces were
 cleaned up and/or communicated in the kernel.
 >> i wasn't able to trigger the panic however (command cancelled with i=350 or
 >> so).
 >> i'm running 9-CURRENT (r207154).
     Ok. This might have been fixed in a later revision that hasn't
 been MFCed from HEAD, but I really don't want to have to take down my
 server to test this...

More information about the freebsd-multimedia mailing list