diff options
author | Andi Kleen <ak@suse.de> | 2006-02-03 15:50:59 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-02-04 19:43:13 -0500 |
commit | 6bca52b544489b626c7d0db801df6b4aa3d5adb5 (patch) | |
tree | 6011b1cec5ffae37ed499013908e38cbdeaf651b | |
parent | 0dd2ea9af8f0eca43cf6200baa182b3aba307049 (diff) |
[PATCH] x86_64: Fix swiotlb dma_alloc_coherent fallback
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>
-rw-r--r-- | arch/x86_64/kernel/pci-dma.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86_64/kernel/pci-dma.c b/arch/x86_64/kernel/pci-dma.c index 2f5d8328e2b9..4ed391edd47a 100644 --- a/arch/x86_64/kernel/pci-dma.c +++ b/arch/x86_64/kernel/pci-dma.c | |||
@@ -107,6 +107,9 @@ dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, | |||
107 | goto again; | 107 | goto again; |
108 | } | 108 | } |
109 | 109 | ||
110 | /* Let low level make its own zone decisions */ | ||
111 | gfp &= ~(GFP_DMA32|GFP_DMA); | ||
112 | |||
110 | if (dma_ops->alloc_coherent) | 113 | if (dma_ops->alloc_coherent) |
111 | return dma_ops->alloc_coherent(dev, size, | 114 | return dma_ops->alloc_coherent(dev, size, |
112 | dma_handle, gfp); | 115 | dma_handle, gfp); |