summaryrefslogtreecommitdiffstats
path: root/sys/dev/sound/pcm/vchan.c
diff options
context:
space:
mode:
authorariff <ariff@FreeBSD.org>2007-03-17 17:07:21 +0000
committerariff <ariff@FreeBSD.org>2007-03-17 17:07:21 +0000
commit1008dd40e3ccaea2037b43cebc74eb7310fccdd6 (patch)
treedf099de99e511cfda817c2c8db0e8bb873b780ea /sys/dev/sound/pcm/vchan.c
parent07ef309a5ab5c901cf3b3ba8b49c4ad26a811962 (diff)
downloadFreeBSD-src-1008dd40e3ccaea2037b43cebc74eb7310fccdd6.zip
FreeBSD-src-1008dd40e3ccaea2037b43cebc74eb7310fccdd6.tar.gz
Fix long delay closing/syncing issues on mmaped buffer.
Diffstat (limited to 'sys/dev/sound/pcm/vchan.c')
-rw-r--r--sys/dev/sound/pcm/vchan.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/sound/pcm/vchan.c b/sys/dev/sound/pcm/vchan.c
index 832a7e7..b65b43c 100644
--- a/sys/dev/sound/pcm/vchan.c
+++ b/sys/dev/sound/pcm/vchan.c
@@ -226,7 +226,7 @@ feed_vchan(struct pcm_feeder *f, struct pcm_channel *c, uint8_t *b,
CHN_UNLOCK(ch);
continue;
}
- if (ch->flags & CHN_F_MAPPED)
+ if ((ch->flags & CHN_F_MAPPED) && !(ch->flags & CHN_F_CLOSING))
sndbuf_acquire(ch->bufsoft, NULL,
sndbuf_getfree(ch->bufsoft));
if (rcnt == 0)
OpenPOWER on IntegriCloud