diff options
author | Alexis Bruemmer <alexisb@us.ibm.com> | 2008-07-25 19:44:51 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-26 12:00:03 -0700 |
commit | 1956a96de488feb05e95c08c9d5e80f63a4be2b1 (patch) | |
tree | fd361f464386607e3d753e062ae7956e94c022e3 /include/asm-x86/iommu.h | |
parent | 8d8bb39b9eba32dd70e87fd5ad5c5dd4ba118e06 (diff) | |
download | blackbird-op-linux-1956a96de488feb05e95c08c9d5e80f63a4be2b1.tar.gz blackbird-op-linux-1956a96de488feb05e95c08c9d5e80f63a4be2b1.zip |
x86 calgary: fix handling of devices that aren't behind the Calgary
The calgary code can give drivers addresses above 4GB which is very bad
for hardware that is only 32bit DMA addressable.
With this patch, the calgary code sets the global dma_ops to swiotlb or
nommu properly, and the dma_ops of devices behind the Calgary/CalIOC2
to calgary_dma_ops. So the calgary code can handle devices safely that
aren't behind the Calgary/CalIOC2.
[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Alexis Bruemmer <alexisb@us.ibm.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: Muli Ben-Yehuda <muli@il.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/asm-x86/iommu.h')
-rw-r--r-- | include/asm-x86/iommu.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/asm-x86/iommu.h b/include/asm-x86/iommu.h index d63166fb3ab7..ecc8061904a9 100644 --- a/include/asm-x86/iommu.h +++ b/include/asm-x86/iommu.h @@ -3,6 +3,7 @@ extern void pci_iommu_shutdown(void); extern void no_iommu_init(void); +extern struct dma_mapping_ops nommu_dma_ops; extern int force_iommu, no_iommu; extern int iommu_detected; |