summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/pci-nommu.c
diff options
context:
space:
mode:
authorJoerg Roedel <joerg.roedel@amd.com>2008-08-19 16:32:43 +0200
committerIngo Molnar <mingo@elte.hu>2008-08-22 08:34:49 +0200
commita3a76532e0caa093c279806d8fe8608232538af0 (patch)
treef5a2cb605a5d3ce8a68d8c9e9f4924830139ce3b /arch/x86/kernel/pci-nommu.c
parentx86: add alloc_coherent dma_ops callback to NOMMU driver (diff)
downloadlinux-a3a76532e0caa093c279806d8fe8608232538af0.tar.xz
linux-a3a76532e0caa093c279806d8fe8608232538af0.zip
x86: add free_coherent dma_ops callback to NOMMU driver
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/pci-nommu.c')
-rw-r--r--arch/x86/kernel/pci-nommu.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/kernel/pci-nommu.c b/arch/x86/kernel/pci-nommu.c
index b8ce83c98211..73853d3fdcac 100644
--- a/arch/x86/kernel/pci-nommu.c
+++ b/arch/x86/kernel/pci-nommu.c
@@ -126,8 +126,15 @@ again:
return NULL;
}
+static void nommu_free_coherent(struct device *dev, size_t size, void *vaddr,
+ dma_addr_t dma_addr)
+{
+ free_pages((unsigned long)vaddr, get_order(size));
+}
+
struct dma_mapping_ops nommu_dma_ops = {
.alloc_coherent = nommu_alloc_coherent,
+ .free_coherent = nommu_free_coherent,
.map_single = nommu_map_single,
.map_sg = nommu_map_sg,
.is_phys = 1,