/* sanity-check for read/write methods */ static int pcm_sanity_check(struct snd_pcm_substream *substream) { struct snd_pcm_runtime *runtime;
if (PCM_RUNTIME_CHECK(substream)) return -ENXIO;
runtime = substream->runtime; if (snd_BUG_ON(!substream->ops->copy && !runtime->dma_area)) return -EINVAL;
if (runtime->status->state == SNDRV_PCM_STATE_OPEN) return -EBADFD;
return 0; }