}
 
 static inline void
-mlx5e_dma_push(struct mlx5e_txqsq *sq, dma_addr_t addr, u32 size,
-              enum mlx5e_dma_map_type map_type)
+mlx5e_dma_push_single(struct mlx5e_txqsq *sq, dma_addr_t addr, u32 size)
 {
        struct mlx5e_sq_dma *dma = mlx5e_dma_get(sq, sq->dma_fifo_pc++);
 
        dma->addr = addr;
        dma->size = size;
-       dma->type = map_type;
+       dma->type = MLX5E_DMA_MAP_SINGLE;
+}
+
+static inline void
+mlx5e_dma_push_netmem(struct mlx5e_txqsq *sq, netmem_ref netmem,
+                     dma_addr_t addr, u32 size)
+{
+       struct mlx5e_sq_dma *dma = mlx5e_dma_get(sq, sq->dma_fifo_pc++);
+
+       netmem_dma_unmap_addr_set(netmem, dma, addr, addr);
+       dma->size = size;
+       dma->type = MLX5E_DMA_MAP_PAGE;
 }
 
 static inline
 
        dseg->addr       = cpu_to_be64(dma_addr);
        dseg->lkey       = sq->mkey_be;
        dseg->byte_count = cpu_to_be32(fsz);
-       mlx5e_dma_push(sq, dma_addr, fsz, MLX5E_DMA_MAP_PAGE);
+       mlx5e_dma_push_netmem(sq, skb_frag_netmem(frag), dma_addr, fsz);
 
        tx_fill_wi(sq, pi, MLX5E_KTLS_DUMP_WQEBBS, fsz, skb_frag_page(frag));
        sq->pc += MLX5E_KTLS_DUMP_WQEBBS;
 
                dseg->lkey       = sq->mkey_be;
                dseg->byte_count = cpu_to_be32(headlen);
 
-               mlx5e_dma_push(sq, dma_addr, headlen, MLX5E_DMA_MAP_SINGLE);
+               mlx5e_dma_push_single(sq, dma_addr, headlen);
                num_dma++;
                dseg++;
        }
                dseg->lkey       = sq->mkey_be;
                dseg->byte_count = cpu_to_be32(fsz);
 
-               mlx5e_dma_push(sq, dma_addr, fsz, MLX5E_DMA_MAP_PAGE);
+               mlx5e_dma_push_netmem(sq, skb_frag_netmem(frag), dma_addr, fsz);
                num_dma++;
                dseg++;
        }
 
        sq->stats->xmit_more += xmit_more;
 
-       mlx5e_dma_push(sq, txd.dma_addr, txd.len, MLX5E_DMA_MAP_SINGLE);
+       mlx5e_dma_push_single(sq, txd.dma_addr, txd.len);
        mlx5e_skb_fifo_push(&sq->db.skb_fifo, skb);
        mlx5e_tx_mpwqe_add_dseg(sq, &txd);
        mlx5e_tx_skb_update_ts_flags(skb);