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 @@ -196,7 +196,7 @@ d = priv->sc; /* At this point pcm_unregister() will destroy all channels anyway. */ - if (PCM_DETACHING(d)) + if (!DSP_REGISTERED(d) || PCM_DETACHING(d)) goto skip; PCM_GIANT_ENTER(d); @@ -301,7 +301,7 @@ return (ENODEV); d = i_dev->si_drv1; - if (PCM_DETACHING(d) || !PCM_REGISTERED(d)) + if (!DSP_REGISTERED(d) || PCM_DETACHING(d)) return (EBADF); priv = malloc(sizeof(*priv), M_DEVBUF, M_WAITOK | M_ZERO); @@ -485,7 +485,7 @@ ("%s(): io train wreck!", __func__)); d = priv->sc; - if (PCM_DETACHING(d) || !DSP_REGISTERED(d)) + if (!DSP_REGISTERED(d) || PCM_DETACHING(d)) return (EBADF); PCM_GIANT_ENTER(d); @@ -704,7 +704,7 @@ return (err); d = priv->sc; - if (PCM_DETACHING(d) || !DSP_REGISTERED(d)) + if (!DSP_REGISTERED(d) || PCM_DETACHING(d)) return (EBADF); PCM_GIANT_ENTER(d); @@ -1823,7 +1823,7 @@ if ((err = devfs_get_cdevpriv((void **)&priv)) != 0) return (err); d = priv->sc; - if (PCM_DETACHING(d) || !DSP_REGISTERED(d)) { + if (!DSP_REGISTERED(d) || PCM_DETACHING(d)) { /* XXX many clients don't understand POLLNVAL */ return (events & (POLLHUP | POLLPRI | POLLIN | POLLRDNORM | POLLOUT | POLLWRNORM)); @@ -1905,7 +1905,7 @@ if ((err = devfs_get_cdevpriv((void **)&priv)) != 0) return (err); d = priv->sc; - if (PCM_DETACHING(d) || !DSP_REGISTERED(d)) + if (!DSP_REGISTERED(d) || PCM_DETACHING(d)) return (EINVAL); PCM_GIANT_ENTER(d);