diff options
author | Robin Gong <yibin.gong@nxp.com> | 2020-12-18 00:15:47 +0800 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2020-12-17 10:38:12 +0100 |
commit | 74c64efa1557fef731b59eb813f115436d18078e (patch) | |
tree | 3d684617f0514a293ec8e1b05e599eaf47b034cf /sound | |
parent | 150927c3674d7db4dd51a7269e01423c8c78e53b (diff) |
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>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/core/memalloc.c | 3 |
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); } /** |