Page MenuHomeFreeBSD

D46100.diff
No OneTemporary

D46100.diff

diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c
--- a/sys/dev/sound/pcm/channel.c
+++ b/sys/dev/sound/pcm/channel.c
@@ -1324,8 +1324,7 @@
return (c);
fail:
- while (feeder_remove(c) == 0)
- ;
+ feeder_remove(c);
if (c->devinfo && CHANNEL_FREE(c->methods, c->devinfo))
sndbuf_free(b);
if (bs)
@@ -1356,8 +1355,7 @@
chn_trigger(c, PCMTRIG_ABORT);
CHN_UNLOCK(c);
}
- while (feeder_remove(c) == 0)
- ;
+ feeder_remove(c);
if (CHANNEL_FREE(c->methods, c->devinfo))
sndbuf_free(b);
sndbuf_destroy(bs);
diff --git a/sys/dev/sound/pcm/feeder.h b/sys/dev/sound/pcm/feeder.h
--- a/sys/dev/sound/pcm/feeder.h
+++ b/sys/dev/sound/pcm/feeder.h
@@ -60,7 +60,7 @@
int feeder_add(struct pcm_channel *c, struct feeder_class *fc,
struct pcm_feederdesc *desc);
-int feeder_remove(struct pcm_channel *c);
+void feeder_remove(struct pcm_channel *c);
struct pcm_feeder *feeder_find(struct pcm_channel *c, u_int32_t type);
void feeder_printchain(struct pcm_feeder *head);
int feeder_chain(struct pcm_channel *);
diff --git a/sys/dev/sound/pcm/feeder.c b/sys/dev/sound/pcm/feeder.c
--- a/sys/dev/sound/pcm/feeder.c
+++ b/sys/dev/sound/pcm/feeder.c
@@ -248,18 +248,16 @@
return 0;
}
-int
+void
feeder_remove(struct pcm_channel *c)
{
struct pcm_feeder *f;
- if (c->feeder == NULL)
- return -1;
- f = c->feeder;
- c->feeder = c->feeder->source;
- feeder_destroy(f);
-
- return 0;
+ while (c->feeder != NULL) {
+ f = c->feeder;
+ c->feeder = c->feeder->source;
+ feeder_destroy(f);
+ }
}
struct pcm_feeder *
diff --git a/sys/dev/sound/pcm/feeder_chain.c b/sys/dev/sound/pcm/feeder_chain.c
--- a/sys/dev/sound/pcm/feeder_chain.c
+++ b/sys/dev/sound/pcm/feeder_chain.c
@@ -588,8 +588,7 @@
CHN_LOCKASSERT(c);
/* Remove everything first. */
- while (feeder_remove(c) == 0)
- ;
+ feeder_remove(c);
KASSERT(c->feeder == NULL, ("feeder chain not empty"));

File Metadata

Mime Type
text/plain
Expires
Wed, Nov 20, 7:15 AM (5 h, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14730754
Default Alt Text
D46100.diff (1 KB)

Event Timeline