summaryrefslogtreecommitdiffstats
path: root/sound/core
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2014-01-10 13:01:41 +0100
committerTakashi Iwai <tiwai@suse.de>2014-01-11 11:04:23 +0100
commit6ab08ced64a4d5ea321fd1d5ebbd2217789b040f (patch)
treeeebd036148e0b216eaba3c3709d4f1adc995e021 /sound/core
parente240a46965dd14db6e6bdf8974ebb347f3db860b (diff)
downloadlinux-stable-6ab08ced64a4d5ea321fd1d5ebbd2217789b040f.tar.gz
linux-stable-6ab08ced64a4d5ea321fd1d5ebbd2217789b040f.tar.bz2
linux-stable-6ab08ced64a4d5ea321fd1d5ebbd2217789b040f.zip
ALSA: PCM: Warn when buffer preallocation fails
The failures of buffer preallocations at driver initializations aren't critical but it's still helpful to inform, so that user can know that something doesn't work as expected. For example, the recent page allocator change triggered regressions, but developers didn't notice until recently because the driver didn't complain. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core')
-rw-r--r--sound/core/pcm_memory.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/core/pcm_memory.c b/sound/core/pcm_memory.c
index 01f8eafebda6..54debc07f5cb 100644
--- a/sound/core/pcm_memory.c
+++ b/sound/core/pcm_memory.c
@@ -51,6 +51,7 @@ static const size_t snd_minimum_buffer = 16384;
static int preallocate_pcm_pages(struct snd_pcm_substream *substream, size_t size)
{
struct snd_dma_buffer *dmab = &substream->dma_buffer;
+ size_t orig_size = size;
int err;
do {
@@ -63,6 +64,10 @@ static int preallocate_pcm_pages(struct snd_pcm_substream *substream, size_t siz
size >>= 1;
} while (size >= snd_minimum_buffer);
dmab->bytes = 0; /* tell error */
+ pr_warn("ALSA pcmC%dD%d%c,%d:%s: cannot preallocate for size %zu\n",
+ substream->pcm->card->number, substream->pcm->device,
+ substream->stream ? 'c' : 'p', substream->number,
+ substream->pcm->name, orig_size);
return 0;
}