summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tags/2.6.20-5/20958-linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch')
-rw-r--r--tags/2.6.20-5/20958-linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/tags/2.6.20-5/20958-linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch b/tags/2.6.20-5/20958-linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch
new file mode 100644
index 0000000..925b47b
--- /dev/null
+++ b/tags/2.6.20-5/20958-linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch
@@ -0,0 +1,45 @@
+# HG changeset patch
+# User chrisw@sous-sol.org
+# Date Tue Oct 03 13:44:38 2006 -0400
+# Node ID e5a7f30e1db3f1084f6789d21ea2a6fdaafdb96d
+# parent: 6cd0fae5d84c4a4b15546ceaade74b7d7f044404
+Make sure no_iommu_init is called when needed on x86_64. Thanks
+to Mark McLoughlin <markmc@redhat.com> for spotting the issue and
+proposing a fix.
+
+Index: patching/arch/i386/kernel/pci-dma-xen.c
+===================================================================
+--- patching.orig/arch/i386/kernel/pci-dma-xen.c
++++ patching/arch/i386/kernel/pci-dma-xen.c
+@@ -22,6 +22,8 @@
+
+ #ifdef __x86_64__
+ #include <asm/proto.h>
++#include <asm/calgary.h>
++
+
+ int iommu_merge __read_mostly = 0;
+ EXPORT_SYMBOL(iommu_merge);
+@@ -71,6 +73,22 @@ void __init pci_iommu_alloc(void)
+ #endif
+ }
+
++static int __init pci_iommu_init(void)
++{
++#ifdef CONFIG_CALGARY_IOMMU
++ calgary_iommu_init();
++#endif
++
++#ifdef CONFIG_IOMMU
++ gart_iommu_init();
++#endif
++
++ no_iommu_init();
++ return 0;
++}
++
++/* Must execute after PCI subsystem */
++fs_initcall(pci_iommu_init);
+ #endif
+
+ struct dma_coherent_mem {