• Fugang Duan's avatar
    net: fec: unmap the xmit buffer that are not transferred by DMA · 178e5f57
    Fugang Duan authored
    The enet IP only support 32 bit, it will use swiotlb buffer to do dma
    mapping when xmit buffer DMA memory address is bigger than 4G in i.MX
    platform. After stress suspend/resume test, it will print out:
    
    log:
    [12826.352864] fec 5b040000.ethernet: swiotlb buffer is full (sz: 191 bytes)
    [12826.359676] DMA: Out of SW-IOMMU space for 191 bytes at device 5b040000.ethernet
    [12826.367110] fec 5b040000.ethernet eth0: Tx DMA memory map failed
    
    The issue is that the ready xmit buffers that are dma mapped but DMA still
    don't copy them into fifo, once MAC restart, these DMA buffers are not unmapped.
    So it should check the dma mapping buffer and unmap them.
    Signed-off-by: default avatarFugang Duan <fugang.duan@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    178e5f57
fec_main.c 95.2 KB