• S
    sh_eth: unmap DMA buffers when freeing rings · 1debdc8f
    Sergei Shtylyov 提交于
    The DMA API debugging (when enabled) causes:
    
    WARNING: CPU: 0 PID: 1445 at lib/dma-debug.c:519 add_dma_entry+0xe0/0x12c
    DMA-API: exceeded 7 overlapping mappings of cacheline 0x01b2974d
    
    to be  printed after repeated initialization of the Ether device, e.g.
    suspend/resume or 'ifconfig' up/down. This is because DMA buffers mapped
    using dma_map_single() in sh_eth_ring_format() and sh_eth_start_xmit() are
    never unmapped. Resolve this problem by unmapping the buffers when freeing
    the descriptor  rings;  in order  to do it right, we'd have to add an extra
    parameter to sh_eth_txfree() (we rename this function to sh_eth_tx_free(),
    while at it).
    
    Based on the commit a47b70ea ("ravb: unmap descriptors when freeing
    rings").
    Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    1debdc8f
sh_eth.c 81.9 KB