[PATCH] x86_64: Fix swiotlb dma_alloc_coherent fallback
authorAndi Kleen <ak@suse.de>
Fri, 3 Feb 2006 20:50:59 +0000 (21:50 +0100)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sun, 5 Feb 2006 00:43:13 +0000 (16:43 -0800)
This avoids BUG_ONs in the low level allocator when an illegal
GFP mask is added.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/x86_64/kernel/pci-dma.c

index 2f5d8328e2b9452b52d3ffe168eea428e8ccc8d8..4ed391edd47abc6df903240d374c2c87863aec4a 100644 (file)
@@ -107,6 +107,9 @@ dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
                                goto again;
                        }
 
+                       /* Let low level make its own zone decisions */
+                       gfp &= ~(GFP_DMA32|GFP_DMA);
+
                        if (dma_ops->alloc_coherent)
                                return dma_ops->alloc_coherent(dev, size,
                                                           dma_handle, gfp);