aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/kernel/pci-nommu_64.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/pci-nommu_64.c')
-rw-r--r--arch/x86/kernel/pci-nommu_64.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/x86/kernel/pci-nommu_64.c b/arch/x86/kernel/pci-nommu_64.c
index 90a7c40aa98..a4e8ccfae4c 100644
--- a/arch/x86/kernel/pci-nommu_64.c
+++ b/arch/x86/kernel/pci-nommu_64.c
@@ -67,9 +67,21 @@ static int nommu_map_sg(struct device *hwdev, struct scatterlist *sg,
return nents;
}
+/* Make sure we keep the same behaviour */
+static int nommu_mapping_error(dma_addr_t dma_addr)
+{
+#ifdef CONFIG_X86_32
+ return 0;
+#else
+ return (dma_addr == bad_dma_address);
+#endif
+}
+
+
const struct dma_mapping_ops nommu_dma_ops = {
.map_single = nommu_map_single,
.map_sg = nommu_map_sg,
+ .mapping_error = nommu_mapping_error,
.is_phys = 1,
};