aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2022-03-21 16:15:22 +0000
committerEd Maste <emaste@FreeBSD.org>2022-03-24 00:10:00 +0000
commitda03ac41c9bca270b491fcf4bf219c4108688a05 (patch)
treec238ef72078e4eb77ccbc7b3b3250b67427b4722
parent4b1e2c2f77d3baea93ee511ef9a60ce1682dc6fb (diff)
downloadsrc-da03ac41c9bca270b491fcf4bf219c4108688a05.tar.gz
src-da03ac41c9bca270b491fcf4bf219c4108688a05.zip
sound: test PCM_REGISTERED before PCM_DETACHING
PCM_REGISTERED(d) tests that d is not NULL, so perform that check first as we may have cases where devclass_get_softc has a null entry. PR: 262671 Reviewed by: hselasky MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D34648
-rw-r--r--sys/dev/sound/pcm/mixer.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/dev/sound/pcm/mixer.c b/sys/dev/sound/pcm/mixer.c
index 89e78b036e94..bbc57f737036 100644
--- a/sys/dev/sound/pcm/mixer.c
+++ b/sys/dev/sound/pcm/mixer.c
@@ -153,7 +153,7 @@ mixer_set_softpcmvol(struct snd_mixer *m, struct snddev_info *d,
struct pcm_channel *c;
int dropmtx, acquiremtx;
- if (PCM_DETACHING(d) || !PCM_REGISTERED(d))
+ if (!PCM_REGISTERED(d) || PCM_DETACHING(d))
return (EINVAL);
if (mtx_owned(m->lock))
@@ -206,7 +206,7 @@ mixer_set_eq(struct snd_mixer *m, struct snddev_info *d,
else
return (EINVAL);
- if (PCM_DETACHING(d) || !PCM_REGISTERED(d))
+ if (!PCM_REGISTERED(d) || PCM_DETACHING(d))
return (EINVAL);
if (mtx_owned(m->lock))
@@ -1083,7 +1083,7 @@ mixer_open(struct cdev *i_dev, int flags, int mode, struct thread *td)
m = i_dev->si_drv1;
d = device_get_softc(m->dev);
- if (PCM_DETACHING(d) || !PCM_REGISTERED(d))
+ if (!PCM_REGISTERED(d) || PCM_DETACHING(d))
return (EBADF);
/* XXX Need Giant magic entry ??? */
@@ -1239,7 +1239,7 @@ mixer_ioctl(struct cdev *i_dev, u_long cmd, caddr_t arg, int mode,
return (EBADF);
d = device_get_softc(((struct snd_mixer *)i_dev->si_drv1)->dev);
- if (PCM_DETACHING(d) || !PCM_REGISTERED(d))
+ if (!PCM_REGISTERED(d) || PCM_DETACHING(d))
return (EBADF);
PCM_GIANT_ENTER(d);
@@ -1460,7 +1460,7 @@ mixer_oss_mixerinfo(struct cdev *i_dev, oss_mixerinfo *mi)
for (i = 0; pcm_devclass != NULL &&
i < devclass_get_maxunit(pcm_devclass); i++) {
d = devclass_get_softc(pcm_devclass, i);
- if (PCM_DETACHING(d) || !PCM_REGISTERED(d))
+ if (!PCM_REGISTERED(d) || PCM_DETACHING(d))
continue;
/* XXX Need Giant magic entry */