public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [3/3] Use the DMA32 zone for  dma_alloc_coherent()/pci_alloc_consistent on x86-64
@ 2005-09-11 16:59 Andi Kleen
  2005-09-12 17:41 ` Linus Torvalds
  0 siblings, 1 reply; 3+ messages in thread
From: Andi Kleen @ 2005-09-11 16:59 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel, discuss

Use the DMA32 zone for dma_alloc_coherent()/pci_alloc_consistent on x86-64

Signed-off-by: Andi Kleen <ak@suse.de>

Index: linux/arch/x86_64/kernel/pci-gart.c
===================================================================
--- linux.orig/arch/x86_64/kernel/pci-gart.c
+++ linux/arch/x86_64/kernel/pci-gart.c
@@ -219,6 +219,8 @@ dma_alloc_coherent(struct device *dev, s
 	/* Kludge to make it bug-to-bug compatible with i386. i386
 	   uses the normal dma_mask for alloc_coherent. */
 	dma_mask &= *dev->dma_mask;
+	if (dma_mask <= 0xffffffff)
+		gfp |= GFP_DMA32;
 
  again:
 	memory = dma_alloc_pages(dev, gfp, get_order(size));
@@ -245,7 +247,7 @@ dma_alloc_coherent(struct device *dev, s
 				}
 
 				if (!(gfp & GFP_DMA)) { 
-					gfp |= GFP_DMA; 
+					gfp = (gfp & ~GFP_DMA32) | GFP_DMA;
 					goto again;
 				}
 				return NULL;

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2005-09-12 18:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-11 16:59 [3/3] Use the DMA32 zone for dma_alloc_coherent()/pci_alloc_consistent on x86-64 Andi Kleen
2005-09-12 17:41 ` Linus Torvalds
2005-09-12 17:59   ` Andi Kleen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox