Commit f8b91f25 authored by Shay Agroskin's avatar Shay Agroskin Committed by Jakub Kicinski

net: ena: use xdp_return_frame() to free xdp frames

XDP subsystem has a function to free XDP frames and their associated
pages. Using this function would help the driver's XDP implementation to
adjust to new changes in the XDP subsystem in the kernel (e.g.
introduction of XDP MB).

Also, remove 'xdp_rx_page' field from ena_tx_buffer struct since it is
no longer used.
Signed-off-by: default avatarShay Agroskin <shayagr@amazon.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent a318c70a
...@@ -299,7 +299,6 @@ static int ena_xdp_xmit_frame(struct net_device *dev, ...@@ -299,7 +299,6 @@ static int ena_xdp_xmit_frame(struct net_device *dev,
req_id = xdp_ring->free_ids[next_to_use]; req_id = xdp_ring->free_ids[next_to_use];
tx_info = &xdp_ring->tx_buffer_info[req_id]; tx_info = &xdp_ring->tx_buffer_info[req_id];
tx_info->num_of_bufs = 0; tx_info->num_of_bufs = 0;
tx_info->xdp_rx_page = virt_to_page(xdpf->data);
rc = ena_xdp_tx_map_frame(xdp_ring, tx_info, xdpf, &push_hdr, &push_len); rc = ena_xdp_tx_map_frame(xdp_ring, tx_info, xdpf, &push_hdr, &push_len);
if (unlikely(rc)) if (unlikely(rc))
...@@ -1836,7 +1835,7 @@ static int ena_clean_xdp_irq(struct ena_ring *xdp_ring, u32 budget) ...@@ -1836,7 +1835,7 @@ static int ena_clean_xdp_irq(struct ena_ring *xdp_ring, u32 budget)
tx_pkts++; tx_pkts++;
total_done += tx_info->tx_descs; total_done += tx_info->tx_descs;
__free_page(tx_info->xdp_rx_page); xdp_return_frame(xdpf);
xdp_ring->free_ids[next_to_clean] = req_id; xdp_ring->free_ids[next_to_clean] = req_id;
next_to_clean = ENA_TX_RING_IDX_NEXT(next_to_clean, next_to_clean = ENA_TX_RING_IDX_NEXT(next_to_clean,
xdp_ring->ring_size); xdp_ring->ring_size);
......
...@@ -170,12 +170,6 @@ struct ena_tx_buffer { ...@@ -170,12 +170,6 @@ struct ena_tx_buffer {
* the xdp queues * the xdp queues
*/ */
struct xdp_frame *xdpf; struct xdp_frame *xdpf;
/* The rx page for the rx buffer that was received in rx and
* re transmitted on xdp tx queues as a result of XDP_TX action.
* We need to free the page once we finished cleaning the buffer in
* clean_xdp_irq()
*/
struct page *xdp_rx_page;
/* Indicate if bufs[0] map the linear data of the skb. */ /* Indicate if bufs[0] map the linear data of the skb. */
u8 map_linear_data; u8 map_linear_data;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment