Call pcm_chn_destroy() in pcm_killchan() so that channel mutexes are destroyed and struct pcm_channel freed.

Reviewed by:	cg
MFC after:	3 days
This commit is contained in:
Olivier Houchard 2002-11-04 19:12:02 +00:00
parent bf139e9706
commit e33bee0756

View File

@ -522,12 +522,18 @@ pcm_killchan(device_t dev)
{
struct snddev_info *d = device_get_softc(dev);
struct snddev_channel *sce;
struct pcm_channel *ch;
int error = 0;
snd_mtxlock(d->lock);
sce = SLIST_FIRST(&d->channels);
snd_mtxunlock(d->lock);
ch = sce->channel;
return pcm_chn_remove(d, sce->channel, 1);
error = pcm_chn_remove(d, sce->channel, 1);
if (error)
return (error);
return (pcm_chn_destroy(ch));
}
int