summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/2.6.20/fedora-xen-patches/0958-linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch')
-rw-r--r--trunk/2.6.20/fedora-xen-patches/0958-linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/trunk/2.6.20/fedora-xen-patches/0958-linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch b/trunk/2.6.20/fedora-xen-patches/0958-linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch
new file mode 100644
index 0000000..e46e657
--- /dev/null
+++ b/trunk/2.6.20/fedora-xen-patches/0958-linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch
@@ -0,0 +1,46 @@
+# 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: linux-2.6.20.i386/arch/i386/kernel/pci-dma-xen.c
+===================================================================
+--- linux-2.6.20.i386.orig/arch/i386/kernel/pci-dma-xen.c
++++ linux-2.6.20.i386/arch/i386/kernel/pci-dma-xen.c
+@@ -21,6 +21,9 @@
+ #include <asm/bug.h>
+
+ #ifdef __x86_64__
++#include <asm/proto.h>
++#include <asm/calgary.h>
++
+ int iommu_merge __read_mostly = 0;
+ EXPORT_SYMBOL(iommu_merge);
+
+@@ -69,6 +72,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 {