x86: gart iommu have direct mapping when agp is present too
PATCH 1/1 x86: gart iommu have direct mapping when agp is present too
move init_memory_mapping out of init_k8_gatt.
for: http://bugzilla.kernel.org/show_bug.cgi?id=11676
2.6.27-rc2 to rc8, apgart fails, iommu=soft works, regression
Signed-off-by Yinghai Lu <[email protected]>
--- arch/x86/kernel/pci-gart_64.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-)
arch/x86/kernel/pci-gart_64.c +11 -9
@@ -650,7 +650,6 @@ static __init int init_k8_gatt(struct agstruct pci_dev *dev;void *gatt;int i, error; -unsigned long start_pfn, end_pfn;printk (KERN_INFO "PCI-DMA: Disabling AGP.\n" ); aper_size = aper_base = info->aper_size =0 ;
@@ -697,12 +696,6 @@ static __init int init_k8_gatt(struct agprintk (KERN_INFO "PCI-DMA: aperture base @ %x size %u KB\n" , aper_base, aper_size>>10 ); -/* need to map that range */ - end_pfn = (aper_base>>PAGE_SHIFT ) + (aper_size>>PAGE_SHIFT ); -if (end_pfn > max_low_pfn_mapped) { - start_pfn = (aper_base>>PAGE_SHIFT ); -init_memory_mapping (start_pfn<<PAGE_SHIFT , end_pfn<<PAGE_SHIFT ); - }return 0 ; nommu:
@@ -745,7 +738,8 @@ void __init gart_iommu_init(void) {struct agp_kern_info info;unsigned long iommu_start; -unsigned long aper_size; +unsigned long aper_base, aper_size; +unsigned long start_pfn, end_pfn;unsigned long scratch;long i;
@@ -783,8 +777,16 @@ void __init gart_iommu_init(void)return ; } +/* need to map that range */ + aper_size = info.aper_size <<20 ; + aper_base = info.aper_base; + end_pfn = (aper_base>>PAGE_SHIFT ) + (aper_size>>PAGE_SHIFT ); +if (end_pfn > max_low_pfn_mapped) { + start_pfn = (aper_base>>PAGE_SHIFT ); +init_memory_mapping (start_pfn<<PAGE_SHIFT , end_pfn<<PAGE_SHIFT ); + } +printk (KERN_INFO "PCI-DMA: using GART IOMMU.\n" ); - aper_size = info.aper_size *1024 *1024 ; iommu_size =check_iommu_size (info.aper_base, aper_size); iommu_pages = iommu_size >>PAGE_SHIFT ;
Ingo Molnar
AppliedQuoted 6 lines · Yinghai Lu
move
init_memory_mappingout ofinit_k8_gatt.for: http://bugzilla.kernel.org/show_bug.cgi?id=11676
2.6.27-rc2 to rc8, apgart fails, iommu=soft works, regressionSigned-off-by Yinghai Lu <[email protected]>
applied to tip/x86/urgent, thanks Yinghai!
Ingo