diff mbox

[v3] sparc32: dma_alloc_coherent must honour gfp flags

Message ID 1410351472-10501-1-git-send-email-daniel@gaisler.com
State Accepted
Delegated to: David Miller
Headers show

Commit Message

Daniel Hellstrom Sept. 10, 2014, 12:17 p.m. UTC
dma_zalloc_coherent() calls dma_alloc_coherent(__GFP_ZERO)
but the sparc32 implementations sbus_alloc_coherent() and
pci32_alloc_coherent() doesn't take the gfp flags into
account.

Tested on the SPARC32/LEON GRETH Ethernet driver which fails
due to dma_alloc_coherent(__GFP_ZERO) returns non zeroed
pages.

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
---
 arch/sparc/kernel/ioport.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

Comments

David Miller Sept. 10, 2014, 9:03 p.m. UTC | #1
From: Daniel Hellstrom <daniel@gaisler.com>
Date: Wed, 10 Sep 2014 14:17:52 +0200

> dma_zalloc_coherent() calls dma_alloc_coherent(__GFP_ZERO)
> but the sparc32 implementations sbus_alloc_coherent() and
> pci32_alloc_coherent() doesn't take the gfp flags into
> account.
> 
> Tested on the SPARC32/LEON GRETH Ethernet driver which fails
> due to dma_alloc_coherent(__GFP_ZERO) returns non zeroed
> pages.
> 
> Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>

Applied, thanks Daniel.
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Daniel Hellstrom Sept. 11, 2014, 7:51 p.m. UTC | #2
On 09/10/2014 11:03 PM, David Miller wrote:
> From: Daniel Hellstrom<daniel@gaisler.com>
> Date: Wed, 10 Sep 2014 14:17:52 +0200
>
>> dma_zalloc_coherent() calls dma_alloc_coherent(__GFP_ZERO)
>> but the sparc32 implementations sbus_alloc_coherent() and
>> pci32_alloc_coherent() doesn't take the gfp flags into
>> account.
>>
>> Tested on the SPARC32/LEON GRETH Ethernet driver which fails
>> due to dma_alloc_coherent(__GFP_ZERO) returns non zeroed
>> pages.
>>
>> Signed-off-by: Daniel Hellstrom<daniel@gaisler.com>
> Applied, thanks Daniel.
Thanks! I think this is subject for the stable branches.
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c
index 2096468..6cacf2d 100644
--- a/arch/sparc/kernel/ioport.c
+++ b/arch/sparc/kernel/ioport.c
@@ -278,7 +278,8 @@  static void *sbus_alloc_coherent(struct device *dev, size_t len,
 	}
 
 	order = get_order(len_total);
-	if ((va = __get_free_pages(GFP_KERNEL|__GFP_COMP, order)) == 0)
+	va = __get_free_pages(gfp, order);
+	if (va == 0)
 		goto err_nopages;
 
 	if ((res = kzalloc(sizeof(struct resource), GFP_KERNEL)) == NULL)
@@ -443,7 +444,7 @@  static void *pci32_alloc_coherent(struct device *dev, size_t len,
 	}
 
 	order = get_order(len_total);
-	va = (void *) __get_free_pages(GFP_KERNEL, order);
+	va = (void *) __get_free_pages(gfp, order);
 	if (va == NULL) {
 		printk("pci_alloc_consistent: no %ld pages\n", len_total>>PAGE_SHIFT);
 		goto err_nopages;