]> git.baikalelectronics.ru Git - kernel.git/commit
net: thunderbolt: Stop using zero to mean no valid DMA mapping
authorMika Westerberg <mika.westerberg@linux.intel.com>
Fri, 24 Nov 2017 11:05:36 +0000 (14:05 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sat, 25 Nov 2017 14:56:02 +0000 (23:56 +0900)
commitf21a1935e5999b6fcea5945e1f1fa1c846cc7b9b
tree9d638840ef0dd103ccb2adc4981b8d4e77409166
parent4295bfce271c763d6a665c69a88955e66cd27b0c
net: thunderbolt: Stop using zero to mean no valid DMA mapping

Commit 76bfea3113e5 ("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: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/thunderbolt.c