• Mark Langsdorf's avatar
    x86: enable GART-IOMMU only after setting up protection methods · fe2245c9
    Mark Langsdorf authored
    The current code to set up the GART as an IOMMU enables GART
    translations before it removes the aperture from the kernel memory
    map, sets the GART PTEs to UC, sets up the guard and scratch
    pages, or does a wbinvd().  This leaves the possibility of cache
    aliasing open and can cause system crashes.
    
    Re-order the code so as to enable the GART translations only
    after all safeguards are in place and the tlb has been flushed.
    
    AMD has tested this patch on both Istanbul systems and 1st
    generation Opteron systems with APG enabled and seen no adverse
    effects.  Istanbul systems with HT Assist enabled sometimes
    see MCE errors due to cache artifacts with the unmodified
    code.
    Signed-off-by: default avatarMark Langsdorf <mark.langsdorf@amd.com>
    Cc: <stable@kernel.org>
    Cc: Joerg Roedel <joerg.roedel@amd.com>
    Cc: akpm@linux-foundation.org
    Cc: jbarnes@virtuousgeek.org
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    fe2245c9
pci-gart_64.c 22.1 KB