* linux-next: manual merge of the dwmw2-iommu tree with the x86 tree
@ 2009-04-30 3:12 Stephen Rothwell
2009-04-30 22:54 ` [PATCH] Fix for "undefined iommu_pass_through" compiling error Fenghua Yu
0 siblings, 1 reply; 2+ messages in thread
From: Stephen Rothwell @ 2009-04-30 3:12 UTC (permalink / raw)
To: David Woodhouse
Cc: linux-next, Fenghua Yu, Weidong Han, Thomas Gleixner,
Ingo Molnar, H. Peter Anvin
Hi David,
Today's linux-next merge of the dwmw2-iommu tree got a conflict in
drivers/pci/intel-iommu.c between commit
937582382c71b75b29fbb92615629494e1a05ac0 ("x86, intr-remap: enable
interrupt remapping early") from the x86 tree and commit
4ed0d3e6c64cfd9ba4ceb2099b10d1cf8ece4320 ("Intel IOMMU Pass Through
Support") from the dwmw2-iommu tree.
Just context changes. I fixed it up (see below) and can carry the fix as
necessary.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
diff --cc drivers/pci/intel-iommu.c
index 9ce8f07,1312182..0000000
--- a/drivers/pci/intel-iommu.c
+++ b/drivers/pci/intel-iommu.c
@@@ -1968,30 -2025,23 +2025,15 @@@ static int __init init_dmars(void
}
}
-#ifdef CONFIG_INTR_REMAP
- if (!intr_remapping_enabled) {
- ret = enable_intr_remapping(0);
- if (ret)
- printk(KERN_ERR
- "IOMMU: enable interrupt remapping failed\n");
- }
-#endif
/*
- * For each rmrr
- * for each dev attached to rmrr
- * do
- * locate drhd for dev, alloc domain for dev
- * allocate free domain
- * allocate page table entries for rmrr
- * if context not allocated for bus
- * allocate and init context
- * set present in root table for this bus
- * init context with domain, translation etc
- * endfor
- * endfor
+ * If pass through is set and enabled, context entries of all pci
+ * devices are intialized by pass through translation type.
*/
- for_each_rmrr_units(rmrr) {
- for (i = 0; i < rmrr->devices_cnt; i++) {
- pdev = rmrr->devices[i];
- /* some BIOS lists non-exist devices in DMAR table */
- if (!pdev)
- continue;
- ret = iommu_prepare_rmrr_dev(rmrr, pdev);
- if (ret)
- printk(KERN_ERR
- "IOMMU: mapping reserved region failed\n");
+ if (iommu_pass_through) {
+ ret = init_context_pass_through();
+ if (ret) {
+ printk(KERN_ERR "IOMMU: Pass through init failed.\n");
+ iommu_pass_through = 0;
}
}
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH] Fix for "undefined iommu_pass_through" compiling error
2009-04-30 3:12 linux-next: manual merge of the dwmw2-iommu tree with the x86 tree Stephen Rothwell
@ 2009-04-30 22:54 ` Fenghua Yu
0 siblings, 0 replies; 2+ messages in thread
From: Fenghua Yu @ 2009-04-30 22:54 UTC (permalink / raw)
To: David Woodhouse, Stephen Rothwell, Ingo Molnar, H. Peter Anvin,
Tony Luck
Cc: linux-next, iommu
When CONFIG_DMAR is off, linux-next or iomm-2.6.git kernel build complains
"undefined iommu_pass_through" error.
This patch moves iommu_pass_through beyond CONFIG_DMAR and fixes this issue.
Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Acked-by: Tony Luck <tony.luck@intel.com>
---
arch/ia64/kernel/dma-mapping.c | 2 ++
arch/x86/kernel/pci-dma.c | 2 ++
drivers/pci/intel-iommu.c | 1 -
3 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/arch/ia64/kernel/dma-mapping.c b/arch/ia64/kernel/dma-mapping.c
index 086a2ae..336ccdc 100644
--- a/arch/ia64/kernel/dma-mapping.c
+++ b/arch/ia64/kernel/dma-mapping.c
@@ -3,6 +3,8 @@
/* Set this to 1 if there is a HW IOMMU in the system */
int iommu_detected __read_mostly;
+int iommu_pass_through;
+
struct dma_map_ops *dma_ops;
EXPORT_SYMBOL(dma_ops);
diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c
index 8cad0d8..14fddef 100644
--- a/arch/x86/kernel/pci-dma.c
+++ b/arch/x86/kernel/pci-dma.c
@@ -32,6 +32,8 @@ int no_iommu __read_mostly;
/* Set this to 1 if there is a HW IOMMU in the system */
int iommu_detected __read_mostly = 0;
+int iommu_pass_through;
+
dma_addr_t bad_dma_address __read_mostly = 0;
EXPORT_SYMBOL(bad_dma_address);
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
index 1312182..d3edd6a 100644
--- a/drivers/pci/intel-iommu.c
+++ b/drivers/pci/intel-iommu.c
@@ -288,7 +288,6 @@ int dmar_disabled = 1;
static int __initdata dmar_map_gfx = 1;
static int dmar_forcedac;
static int intel_iommu_strict;
-int iommu_pass_through;
#define DUMMY_DEVICE_DOMAIN_INFO ((struct device_domain_info *)(-1))
static DEFINE_SPINLOCK(device_domain_lock);
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-04-30 22:54 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-30 3:12 linux-next: manual merge of the dwmw2-iommu tree with the x86 tree Stephen Rothwell
2009-04-30 22:54 ` [PATCH] Fix for "undefined iommu_pass_through" compiling error Fenghua Yu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).