Commit dca8ede4 authored by Andi Kleen's avatar Andi Kleen Committed by Linus Torvalds

[PATCH] Fix x86-64 VIA systems with IOMMU debug

VIA chipsets are broken and don't work with IOMMU enabled. For some mysterious
reason (the IOMMU logic is actually in the CPU) they manage to corrupt all
data going through the aperture to PCI devices.

There was a workaround previously that enabled the slower softmmu when VIA is 
detected on the normal IOMMU path (when there is more than 3GB of memory). But
CONFIG_IOMMU_DEBUG took a short cut that was not handled, which ended up with 
VIA systems not booting when this option is enabled.

This patch enables the workaround with CONFIG_IOMMU_DEBUG/iommu=force too
parent c902e4cd
......@@ -252,7 +252,8 @@ void __init check_ioapic(void)
switch (vendor) {
case PCI_VENDOR_ID_VIA:
#ifdef CONFIG_GART_IOMMU
if (end_pfn >= (0xffffffff>>PAGE_SHIFT) &&
if ((end_pfn >= (0xffffffff>>PAGE_SHIFT) ||
force_iommu) &&
!iommu_aperture_allowed) {
printk(KERN_INFO
"Looks like a VIA chipset. Disabling IOMMU. Overwrite with \"iommu=allowed\"\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment