summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobin Gong <yibin.gong@nxp.com>2020-12-18 00:15:47 +0800
committerTakashi Iwai <tiwai@suse.de>2020-12-17 10:38:12 +0100
commit74c64efa1557fef731b59eb813f115436d18078e (patch)
tree3d684617f0514a293ec8e1b05e599eaf47b034cf
parent150927c3674d7db4dd51a7269e01423c8c78e53b (diff)
downloadlinux-74c64efa1557fef731b59eb813f115436d18078e.tar.bz2
ALSA: core: memalloc: add page alignment for iram
Since mmap for userspace is based on page alignment, add page alignment for iram alloc from pool, otherwise, some good data located in the same page of dmab->area maybe touched wrongly by userspace like pulseaudio. Signed-off-by: Robin Gong <yibin.gong@nxp.com> Cc: <stable@vger.kernel.org> Link: https://lore.kernel.org/r/1608221747-3474-1-git-send-email-yibin.gong@nxp.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/core/memalloc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/core/memalloc.c b/sound/core/memalloc.c
index 0aeeb6244ff6..0f335162f87c 100644
--- a/sound/core/memalloc.c
+++ b/sound/core/memalloc.c
@@ -77,7 +77,8 @@ static void snd_malloc_dev_iram(struct snd_dma_buffer *dmab, size_t size)
/* Assign the pool into private_data field */
dmab->private_data = pool;
- dmab->area = gen_pool_dma_alloc(pool, size, &dmab->addr);
+ dmab->area = gen_pool_dma_alloc_align(pool, size, &dmab->addr,
+ PAGE_SIZE);
}
/**