ALSA: memalloc: Don't align the size to power-of-two
authorTakashi Iwai <tiwai@suse.de>
Wed, 8 Aug 2018 14:56:46 +0000 (16:56 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 28 Aug 2018 11:56:46 +0000 (13:56 +0200)
The size passed to dma_alloc_coherent() doesn't have to be aligned
with power-of-two, rather it should be the raw size.  As a minor
optimization, remove the size adjustment in the current code.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/memalloc.c

index 753d5fc4b284fa66cd0f3911d4096322fd7b3bf9..d85df01bf0551e3f74186e9f5d4a7da1b8ee890e 100644 (file)
@@ -84,29 +84,24 @@ EXPORT_SYMBOL(snd_free_pages);
 /* allocate the coherent DMA pages */
 static void *snd_malloc_dev_pages(struct device *dev, size_t size, dma_addr_t *dma)
 {
-       int pg;
        gfp_t gfp_flags;
 
        if (WARN_ON(!dma))
                return NULL;
-       pg = get_order(size);
        gfp_flags = GFP_KERNEL
                | __GFP_COMP    /* compound page lets parts be mapped */
                | __GFP_NORETRY /* don't trigger OOM-killer */
                | __GFP_NOWARN; /* no stack trace print - this call is non-critical */
-       return dma_alloc_coherent(dev, PAGE_SIZE << pg, dma, gfp_flags);
+       return dma_alloc_coherent(dev, size, dma, gfp_flags);
 }
 
 /* free the coherent DMA pages */
 static void snd_free_dev_pages(struct device *dev, size_t size, void *ptr,
                               dma_addr_t dma)
 {
-       int pg;
-
        if (ptr == NULL)
                return;
-       pg = get_order(size);
-       dma_free_coherent(dev, PAGE_SIZE << pg, ptr, dma);
+       dma_free_coherent(dev, size, ptr, dma);
 }
 
 #ifdef CONFIG_GENERIC_ALLOCATOR