• Mika Westerberg's avatar
    net: thunderbolt: Stop using zero to mean no valid DMA mapping · 540c1115
    Mika Westerberg authored
    Commit 86dabda4 ("net: thunderbolt: Clear finished Tx frame bus
    address in tbnet_tx_callback()") fixed a DMA-API violation where the
    driver called dma_unmap_page() in tbnet_free_buffers() for a bus address
    that might already be unmapped. The fix was to zero out the bus address
    of a frame in tbnet_tx_callback().
    
    However, as pointed out by David Miller, zero might well be valid
    mapping (at least in theory) so it is not good idea to use it here.
    
    It turns out that we don't need the whole map/unmap dance for Tx buffers
    at all. Instead we can map the buffers when they are initially allocated
    and unmap them when the interface is brought down. In between we just
    DMA sync the buffers for the CPU or device as needed.
    Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    540c1115
thunderbolt.c 34.3 KB