• David S. Miller's avatar
    [SPARC64]: Fix for Niagara memory corruption. · c2a5a46b
    David S. Miller authored
    On some sun4v systems, after netboot the ethernet controller and it's
    DMA mappings can be left active.  The net result is that the kernel
    can end up using memory the ethernet controller will continue to DMA
    into, resulting in corruption.
    
    To deal with this, we are more careful about importing IOMMU
    translations which OBP has left in the IO-TLB.  If the mapping maps
    into an area the firmware claimed was free and available memory for
    the kernel to use, we demap instead of import that IOMMU entry.
    
    This is going to cause the network chip to take a PCI master abort on
    the next DMA it attempts, if it has been left going like this.  All
    tests show that this is handled properly by the PCI layer and the e1000
    drivers.
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c2a5a46b
pci_sun4v.c 28 KB