ALSA: pcm: Warn if doubly preallocated
authorTakashi Iwai <tiwai@suse.de>
Tue, 5 Nov 2019 19:10:06 +0000 (20:10 +0100)
committerTakashi Iwai <tiwai@suse.de>
Wed, 6 Nov 2019 14:43:34 +0000 (15:43 +0100)
Warn if snd_pcm_lib_preallocate_pages*() is applied to the stream that
has already the preallocated buffers and skip the allocation.  It's a
clearly a driver bug.

Link: https://lore.kernel.org/r/20191105191007.18150-2-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/pcm_memory.c

index 7600dcdf5fd4d14da1f3c0698f924c5dcdd6da0d..19407f79b63808a6402976e94e158df7d14c062c 100644 (file)
@@ -221,6 +221,8 @@ void snd_pcm_lib_preallocate_pages(struct snd_pcm_substream *substream,
                                  int type, struct device *data,
                                  size_t size, size_t max)
 {
+       if (snd_BUG_ON(substream->dma_buffer.dev.type))
+               return;
        substream->dma_buffer.dev.type = type;
        substream->dma_buffer.dev.dev = data;
        snd_pcm_lib_preallocate_pages1(substream, size, max);