• Yinghai Lu's avatar
    x86: max_low_pfn_mapped fix, #1 · 7ab073b6
    Yinghai Lu authored
    fix crash on Ingo's big box:
    
    calling  pci_iommu_init+0x0/0x17
    PCI-DMA: Disabling AGP.
    PCI-DMA: aperture base @ d0000000 size 65536 KB
    PCI-DMA: using GART IOMMU.
    PCI-DMA: Reserving 64MB of IOMMU area in the AGP aperture
    BUG: unable to handle kernel paging request at ffff88000003be88
    IP: [<ffffffff8026d377>] __alloc_pages_internal+0xc3/0x3f2
    PGD 202063 PUD 206063 PMD 22fc00163 PTE 3b162
    Oops: 0000 [1] SMP
    
    and e820 is:
    
     BIOS-e820: 0000000000000000 - 000000000009ac00 (usable)
     BIOS-e820: 000000000009ac00 - 00000000000a0000 (reserved)
     BIOS-e820: 00000000000ca000 - 0000000000100000 (reserved)
     BIOS-e820: 0000000000100000 - 000000007ff70000 (usable)
     BIOS-e820: 000000007ff70000 - 000000007ff86000 (ACPI data)
     BIOS-e820: 000000007ff86000 - 0000000080000000 (ACPI NVS)
     BIOS-e820: 0000000080000000 - 00000000cfe00000 (usable)
     BIOS-e820: 00000000cfe00000 - 00000000d0000000 (reserved)
     BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
     BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
     BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
     BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)
     BIOS-e820: 0000000100000000 - 0000000830000000 (usable)
    
    system has 32 GB RAM installed.
    
    max_low_pfn_mapped is 0xcfe00, and GART aperture is not mapped.
    
    So try to use init_memory_mapping to map that area, because the iommu
    thinks that area is ram ...
    Signed-off-by: default avatarYinghai Lu <yhlu.kernel@gmail.com>
    Cc: Suresh Siddha <suresh.b.siddha@intel.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    7ab073b6
pci-gart_64.c 22 KB