summaryrefslogtreecommitdiff
path: root/arch/x86/kernel/pci-swiotlb_64.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-04-19 19:19:56 +0200
committerIngo Molnar <mingo@elte.hu>2008-04-19 19:19:56 +0200
commit2be621498d461b63ca6124f86e3b9582e1a8e722 (patch)
tree5b2e3af9ca287c7742f59f909cbce0e7bca3f333 /arch/x86/kernel/pci-swiotlb_64.c
parent4d92fbf231fe23ec07d18820a141c573a7f5017a (diff)
x86: dma-ops on highmem fix
Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/pci-swiotlb_64.c')
-rw-r--r--arch/x86/kernel/pci-swiotlb_64.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/x86/kernel/pci-swiotlb_64.c b/arch/x86/kernel/pci-swiotlb_64.c
index 82a0a674a003..490da7f4b8d0 100644
--- a/arch/x86/kernel/pci-swiotlb_64.c
+++ b/arch/x86/kernel/pci-swiotlb_64.c
@@ -11,11 +11,18 @@
int swiotlb __read_mostly;
+static dma_addr_t
+swiotlb_map_single_phys(struct device *hwdev, phys_addr_t paddr, size_t size,
+ int direction)
+{
+ return swiotlb_map_single(hwdev, phys_to_virt(paddr), size, direction);
+}
+
const struct dma_mapping_ops swiotlb_dma_ops = {
.mapping_error = swiotlb_dma_mapping_error,
.alloc_coherent = swiotlb_alloc_coherent,
.free_coherent = swiotlb_free_coherent,
- .map_single = swiotlb_map_single,
+ .map_single = swiotlb_map_single_phys,
.unmap_single = swiotlb_unmap_single,
.sync_single_for_cpu = swiotlb_sync_single_for_cpu,
.sync_single_for_device = swiotlb_sync_single_for_device,