linux/drivers/pci
David Woodhouse 5854d9c8d1 Fix handling of the HP/Acer 'DMAR at zero' BIOS error for machines with <4GiB RAM.
Commit 86cf898e1d ("intel-iommu: Check for
'DMAR at zero' BIOS error earlier.") was supposed to work by pretending
not to detect an IOMMU if it was actually being reported by the BIOS at
physical address zero.

However, the intel_iommu_init() function is called unconditionally, as
are the corresponding functions for other IOMMU hardware.

So the patch only worked if you have RAM above the 4GiB boundary. It
caused swiotlb to be initialised when no IOMMU was detected during early
boot, and thus the later IOMMU init would refuse to run.

But if you have less RAM than that, swiotlb wouldn't get set up and the
IOMMU _would_ still end up being initialised, even though we never
claimed to detect it.

This patch also sets the dmar_disabled flag when the error is detected
during the initial detection phase -- so that the later call to
intel_iommu_init() will return without doing anything, regardless of
whether swiotlb is used or not.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-11-19 13:42:02 -08:00
..
hotplug headers: Fix build after <linux/sched.h> removal 2009-10-13 10:20:16 -07:00
pcie PCI ASPM: fix oops on root port removal 2009-11-06 14:01:23 -08:00
.gitignore
Kconfig
Makefile
access.c
bus.c
dmar.c Fix handling of the HP/Acer 'DMAR at zero' BIOS error for machines with <4GiB RAM. 2009-11-19 13:42:02 -08:00
hotplug-pci.c
hotplug.c
htirq.c
intel-iommu.c intel-iommu: Support PCIe hot-plug 2009-11-12 02:28:45 +00:00
intr_remapping.c Merge git://git.infradead.org/iommu-2.6 2009-09-23 10:06:10 -07:00
intr_remapping.h
iov.c
iova.c
irq.c
legacy.c
msi.c
msi.h
pci-acpi.c
pci-driver.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-09-16 07:49:54 -07:00
pci-stub.c
pci-sysfs.c
pci.c Merge git://git.infradead.org/~dwmw2/iommu-2.6.32 2009-10-13 10:04:40 -07:00
pci.h
probe.c
proc.c
quirks.c ahci / atiixp / pci quirks: rename AMD SB900 into Hudson-2 2009-10-16 06:21:20 -04:00
remove.c
rom.c
search.c
setup-bus.c Revert "PCI: get larger bridge ranges when space is available" 2009-10-27 09:39:18 -07:00
setup-irq.c
setup-res.c PCI: remove pci_assign_resource_fixed() 2009-10-06 09:42:04 -07:00
slot.c
syscall.c