|
Takashi Iwai |
8f5341 |
From dc0dc8a73e8e4dc33fba93dfe23356cc5a500c57 Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
8f5341 |
From: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
8f5341 |
Date: Sun, 8 Aug 2021 09:01:16 +0200
|
|
Takashi Iwai |
8f5341 |
Subject: [PATCH] ALSA: pcm: Fix mmap breakage without explicit buffer setup
|
|
Takashi Iwai |
8f5341 |
Git-commit: dc0dc8a73e8e4dc33fba93dfe23356cc5a500c57
|
|
Takashi Iwai |
8f5341 |
Patch-mainline: v5.14-rc6
|
|
Takashi Iwai |
8f5341 |
References: git-fixes
|
|
Takashi Iwai |
8f5341 |
|
|
Takashi Iwai |
8f5341 |
The recent fix c4824ae7db41 ("ALSA: pcm: Fix mmap capability check")
|
|
Takashi Iwai |
8f5341 |
restricts the mmap capability only to the drivers that properly set up
|
|
Takashi Iwai |
8f5341 |
the buffers, but it caused a regression for a few drivers that manage
|
|
Takashi Iwai |
8f5341 |
the buffer on its own way.
|
|
Takashi Iwai |
8f5341 |
|
|
Takashi Iwai |
8f5341 |
For those with UNKNOWN buffer type (i.e. the uninitialized / unused
|
|
Takashi Iwai |
8f5341 |
substream->dma_buffer), just assume that the driver handles the mmap
|
|
Takashi Iwai |
8f5341 |
properly and blindly trust the hardware info bit.
|
|
Takashi Iwai |
8f5341 |
|
|
Takashi Iwai |
8f5341 |
Fixes: c4824ae7db41 ("ALSA: pcm: Fix mmap capability check")
|
|
Takashi Iwai |
8f5341 |
Reported-and-tested-by: Jeff Woods <jwoods@fnordco.com>
|
|
Takashi Iwai |
8f5341 |
Cc: <stable@vger.kernel.org>
|
|
Takashi Iwai |
8f5341 |
Link: https://lore.kernel.org/r/s5him0gpghv.wl-tiwai@suse.de
|
|
Takashi Iwai |
8f5341 |
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
8f5341 |
|
|
Takashi Iwai |
8f5341 |
---
|
|
Takashi Iwai |
8f5341 |
sound/core/pcm_native.c | 5 ++++-
|
|
Takashi Iwai |
8f5341 |
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
Takashi Iwai |
8f5341 |
|
|
Takashi Iwai |
8f5341 |
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
|
|
Takashi Iwai |
8f5341 |
index 09c0e2a6489c..71323d807dbf 100644
|
|
Takashi Iwai |
8f5341 |
--- a/sound/core/pcm_native.c
|
|
Takashi Iwai |
8f5341 |
+++ b/sound/core/pcm_native.c
|
|
Takashi Iwai |
8f5341 |
@@ -251,7 +251,10 @@ static bool hw_support_mmap(struct snd_pcm_substream *substream)
|
|
Takashi Iwai |
8f5341 |
|
|
Takashi Iwai |
8f5341 |
switch (substream->dma_buffer.dev.type) {
|
|
Takashi Iwai |
8f5341 |
case SNDRV_DMA_TYPE_UNKNOWN:
|
|
Takashi Iwai |
8f5341 |
- return false;
|
|
Takashi Iwai |
8f5341 |
+ /* we can't know the device, so just assume that the driver does
|
|
Takashi Iwai |
8f5341 |
+ * everything right
|
|
Takashi Iwai |
8f5341 |
+ */
|
|
Takashi Iwai |
8f5341 |
+ return true;
|
|
Takashi Iwai |
8f5341 |
case SNDRV_DMA_TYPE_CONTINUOUS:
|
|
Takashi Iwai |
8f5341 |
case SNDRV_DMA_TYPE_VMALLOC:
|
|
Takashi Iwai |
8f5341 |
return true;
|
|
Takashi Iwai |
8f5341 |
--
|
|
Takashi Iwai |
8f5341 |
2.26.2
|
|
Takashi Iwai |
8f5341 |
|