From: "Andi Kleen" Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton --- 25-akpm/arch/x86_64/kernel/pci-gart.c | 20 +++++--------------- 1 files changed, 5 insertions(+), 15 deletions(-) diff -puN arch/x86_64/kernel/pci-gart.c~x86_64-clean-up-the-iommu-initialisation-a-bit arch/x86_64/kernel/pci-gart.c --- 25/arch/x86_64/kernel/pci-gart.c~x86_64-clean-up-the-iommu-initialisation-a-bit Wed Mar 23 15:39:16 2005 +++ 25-akpm/arch/x86_64/kernel/pci-gart.c Wed Mar 23 15:39:16 2005 @@ -720,6 +720,7 @@ static __init int init_k8_gatt(struct ag unsigned aper_base, new_aper_base; unsigned aper_size, gatt_size, new_aper_size; + printk(KERN_INFO "PCI-DMA: Disabling AGP.\n"); aper_size = aper_base = info->aper_size = 0; for_all_nb(dev) { new_aper_base = read_aperture(dev, &new_aper_size); @@ -798,26 +799,15 @@ static int __init pci_iommu_init(void) return -1; } - if (no_iommu || (!force_iommu && end_pfn < 0xffffffff>>PAGE_SHIFT) || - !iommu_aperture) { + if (no_iommu || + (!force_iommu && end_pfn < 0xffffffff>>PAGE_SHIFT) || + !iommu_aperture || + (no_agp && init_k8_gatt(&info) < 0)) { printk(KERN_INFO "PCI-DMA: Disabling IOMMU.\n"); no_iommu = 1; return -1; } - if (no_agp) { - int err = -1; - printk(KERN_INFO "PCI-DMA: Disabling AGP.\n"); - no_agp = 1; - if (force_iommu || end_pfn >= 0xffffffff>>PAGE_SHIFT) - err = init_k8_gatt(&info); - if (err < 0) { - printk(KERN_INFO "PCI-DMA: Disabling IOMMU.\n"); - no_iommu = 1; - return -1; - } - } - aper_size = info.aper_size * 1024 * 1024; iommu_size = check_iommu_size(info.aper_base, aper_size); iommu_pages = iommu_size >> PAGE_SHIFT; _