Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F137970074
D47463.id146973.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
D47463.id146973.diff
View Options
diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c
--- a/sys/dev/sound/pcm/dsp.c
+++ b/sys/dev/sound/pcm/dsp.c
@@ -177,7 +177,7 @@
d = priv->sc;
/* At this point pcm_unregister() will destroy all channels anyway. */
- if (!DSP_REGISTERED(d) || PCM_DETACHING(d))
+ if (!DSP_REGISTERED(d))
goto skip;
PCM_GIANT_ENTER(d);
@@ -264,7 +264,7 @@
return (ENODEV);
d = i_dev->si_drv1;
- if (!DSP_REGISTERED(d) || PCM_DETACHING(d))
+ if (!DSP_REGISTERED(d))
return (EBADF);
priv = malloc(sizeof(*priv), M_DEVBUF, M_WAITOK | M_ZERO);
@@ -445,7 +445,7 @@
("%s(): io train wreck!", __func__));
d = priv->sc;
- if (!DSP_REGISTERED(d) || PCM_DETACHING(d))
+ if (!DSP_REGISTERED(d))
return (EBADF);
PCM_GIANT_ENTER(d);
@@ -664,7 +664,7 @@
return (err);
d = priv->sc;
- if (!DSP_REGISTERED(d) || PCM_DETACHING(d))
+ if (!DSP_REGISTERED(d))
return (EBADF);
PCM_GIANT_ENTER(d);
@@ -1783,7 +1783,7 @@
if ((err = devfs_get_cdevpriv((void **)&priv)) != 0)
return (err);
d = priv->sc;
- if (!DSP_REGISTERED(d) || PCM_DETACHING(d)) {
+ if (!DSP_REGISTERED(d)) {
/* XXX many clients don't understand POLLNVAL */
return (events & (POLLHUP | POLLPRI | POLLIN |
POLLRDNORM | POLLOUT | POLLWRNORM));
@@ -1865,7 +1865,7 @@
if ((err = devfs_get_cdevpriv((void **)&priv)) != 0)
return (err);
d = priv->sc;
- if (!DSP_REGISTERED(d) || PCM_DETACHING(d))
+ if (!DSP_REGISTERED(d))
return (EINVAL);
PCM_GIANT_ENTER(d);
diff --git a/sys/dev/sound/pcm/mixer.c b/sys/dev/sound/pcm/mixer.c
--- a/sys/dev/sound/pcm/mixer.c
+++ b/sys/dev/sound/pcm/mixer.c
@@ -146,7 +146,7 @@
struct pcm_channel *c;
int dropmtx, acquiremtx;
- if (!PCM_REGISTERED(d) || PCM_DETACHING(d))
+ if (!PCM_REGISTERED(d))
return (EINVAL);
if (mtx_owned(m->lock))
@@ -199,7 +199,7 @@
else
return (EINVAL);
- if (!PCM_REGISTERED(d) || PCM_DETACHING(d))
+ if (!PCM_REGISTERED(d))
return (EINVAL);
if (mtx_owned(m->lock))
@@ -1053,7 +1053,7 @@
m = i_dev->si_drv1;
d = device_get_softc(m->dev);
- if (!PCM_REGISTERED(d) || PCM_DETACHING(d))
+ if (!PCM_REGISTERED(d))
return (EBADF);
/* XXX Need Giant magic entry ??? */
@@ -1209,7 +1209,7 @@
return (EBADF);
d = device_get_softc(((struct snd_mixer *)i_dev->si_drv1)->dev);
- if (!PCM_REGISTERED(d) || PCM_DETACHING(d))
+ if (!PCM_REGISTERED(d))
return (EBADF);
PCM_GIANT_ENTER(d);
@@ -1447,7 +1447,7 @@
for (i = 0; pcm_devclass != NULL &&
i < devclass_get_maxunit(pcm_devclass); i++) {
d = devclass_get_softc(pcm_devclass, i);
- if (!PCM_REGISTERED(d) || PCM_DETACHING(d)) {
+ if (!PCM_REGISTERED(d)) {
if ((mi->dev == -1 && i == snd_unit) || mi->dev == i) {
mixer_oss_mixerinfo_unavail(mi, i);
return (0);
diff --git a/sys/dev/sound/pcm/sound.h b/sys/dev/sound/pcm/sound.h
--- a/sys/dev/sound/pcm/sound.h
+++ b/sys/dev/sound/pcm/sound.h
@@ -104,17 +104,15 @@
#define SD_F_SIMPLEX 0x00000001
#define SD_F_AUTOVCHAN 0x00000002
#define SD_F_SOFTPCMVOL 0x00000004
-#define SD_F_DYING 0x00000008
-#define SD_F_DETACHING 0x00000010
-#define SD_F_BUSY 0x00000020
-#define SD_F_MPSAFE 0x00000040
-#define SD_F_REGISTERED 0x00000080
-#define SD_F_BITPERFECT 0x00000100
-#define SD_F_VPC 0x00000200 /* volume-per-channel */
-#define SD_F_EQ 0x00000400 /* EQ */
-#define SD_F_EQ_ENABLED 0x00000800 /* EQ enabled */
-#define SD_F_EQ_BYPASSED 0x00001000 /* EQ bypassed */
-#define SD_F_EQ_PC 0x00002000 /* EQ per-channel */
+#define SD_F_BUSY 0x00000008
+#define SD_F_MPSAFE 0x00000010
+#define SD_F_REGISTERED 0x00000020
+#define SD_F_BITPERFECT 0x00000040
+#define SD_F_VPC 0x00000080 /* volume-per-channel */
+#define SD_F_EQ 0x00000100 /* EQ */
+#define SD_F_EQ_ENABLED 0x00000200 /* EQ enabled */
+#define SD_F_EQ_BYPASSED 0x00000400 /* EQ bypassed */
+#define SD_F_EQ_PC 0x00000800 /* EQ per-channel */
#define SD_F_EQ_DEFAULT (SD_F_EQ | SD_F_EQ_ENABLED)
#define SD_F_EQ_MASK (SD_F_EQ | SD_F_EQ_ENABLED | \
@@ -127,26 +125,20 @@
"\001SIMPLEX" \
"\002AUTOVCHAN" \
"\003SOFTPCMVOL" \
- "\004DYING" \
- "\005DETACHING" \
- "\006BUSY" \
- "\007MPSAFE" \
- "\010REGISTERED" \
- "\011BITPERFECT" \
- "\012VPC" \
- "\013EQ" \
- "\014EQ_ENABLED" \
- "\015EQ_BYPASSED" \
- "\016EQ_PC" \
+ "\004BUSY" \
+ "\005MPSAFE" \
+ "\006REGISTERED" \
+ "\007BITPERFECT" \
+ "\010VPC" \
+ "\011EQ" \
+ "\012EQ_ENABLED" \
+ "\013EQ_BYPASSED" \
+ "\014EQ_PC" \
"\035PRIO_RD" \
"\036PRIO_WR"
-#define PCM_ALIVE(x) ((x) != NULL && (x)->lock != NULL && \
- !((x)->flags & SD_F_DYING))
-#define PCM_REGISTERED(x) (PCM_ALIVE(x) && \
- ((x)->flags & SD_F_REGISTERED))
-
-#define PCM_DETACHING(x) ((x)->flags & SD_F_DETACHING)
+#define PCM_ALIVE(x) ((x) != NULL && (x)->lock != NULL)
+#define PCM_REGISTERED(x) (PCM_ALIVE(x) && ((x)->flags & SD_F_REGISTERED))
#define PCM_CHANCOUNT(d) \
(d->playcount + d->pvchancount + d->reccount + d->rvchancount)
diff --git a/sys/dev/sound/pcm/sound.c b/sys/dev/sound/pcm/sound.c
--- a/sys/dev/sound/pcm/sound.c
+++ b/sys/dev/sound/pcm/sound.c
@@ -536,8 +536,6 @@
PCM_LOCK(d);
PCM_WAIT(d);
- d->flags |= SD_F_DETACHING;
- d->flags |= SD_F_DYING;
d->flags &= ~SD_F_REGISTERED;
PCM_ACQUIRE(d);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Nov 28, 6:58 PM (4 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26295980
Default Alt Text
D47463.id146973.diff (5 KB)
Attached To
Mode
D47463: sound: Remove PCM_DETACHING(), SD_F_DETACHING and SD_F_DYING
Attached
Detach File
Event Timeline
Log In to Comment