ALSA: core: memalloc: add page alignment for iram
authorRobin Gong <yibin.gong@nxp.com>
Thu, 17 Dec 2020 16:15:47 +0000 (00:15 +0800)
committerTakashi Iwai <tiwai@suse.de>
Thu, 17 Dec 2020 09:38:12 +0000 (10:38 +0100)
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>
sound/core/memalloc.c

index 0aeeb62..0f33516 100644 (file)
@@ -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);
 }
 
 /**