diff options
author | Achiad Shochat | 2015-11-12 18:35:28 +0100 |
---|---|---|
committer | David S. Miller | 2015-11-16 00:43:40 +0100 |
commit | d4e28cbd24c8cb004960ddb8b22124953f6c220c (patch) | |
tree | 56c1b4cca0d61a221b61f595027488b659c439fa /drivers/net/ethernet/mellanox/mlx5/core/en.h | |
parent | net/mlx5e: Max mtu comparison fix (diff) | |
download | kernel-qcow2-linux-d4e28cbd24c8cb004960ddb8b22124953f6c220c.tar.gz kernel-qcow2-linux-d4e28cbd24c8cb004960ddb8b22124953f6c220c.tar.xz kernel-qcow2-linux-d4e28cbd24c8cb004960ddb8b22124953f6c220c.zip |
net/mlx5e: Use the right DMA free function on TX path
On xmit path we use skb_frag_dma_map() which is using dma_map_page(),
while upon completion we dma-unmap the skb fragments using
dma_unmap_single() rather than dma_unmap_page().
To fix this, we now save the dma map type on xmit path and use this
info to call the right dma unmap method upon TX completion.
Signed-off-by: Achiad Shochat <achiad@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/en.h')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h index f2ae62dd8c09..22e72bf1ae48 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h @@ -334,9 +334,15 @@ struct mlx5e_tx_skb_cb { #define MLX5E_TX_SKB_CB(__skb) ((struct mlx5e_tx_skb_cb *)__skb->cb) +enum mlx5e_dma_map_type { + MLX5E_DMA_MAP_SINGLE, + MLX5E_DMA_MAP_PAGE +}; + struct mlx5e_sq_dma { - dma_addr_t addr; - u32 size; + dma_addr_t addr; + u32 size; + enum mlx5e_dma_map_type type; }; enum { |