mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-05 15:35:05 +07:00
i40e: simplify Rx buffer recycle
Currently, the dma, addr and handle are modified when we reuse Rx buffers in zero-copy mode. However, this is not required as the inputs to the function are copies, not the original values themselves. As we use the copies within the function, we can use the original 'old_bi' values directly without having to mask and add the headroom. Signed-off-by: Kevin Laatz <kevin.laatz@intel.com> Acked-by: Jonathan Lemon <jonathan.lemon@gmail.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
parent
1c6d6e021c
commit
10912fc9fa
@ -420,8 +420,6 @@ static void i40e_reuse_rx_buffer_zc(struct i40e_ring *rx_ring,
|
||||
struct i40e_rx_buffer *old_bi)
|
||||
{
|
||||
struct i40e_rx_buffer *new_bi = &rx_ring->rx_bi[rx_ring->next_to_alloc];
|
||||
unsigned long mask = (unsigned long)rx_ring->xsk_umem->chunk_mask;
|
||||
u64 hr = rx_ring->xsk_umem->headroom + XDP_PACKET_HEADROOM;
|
||||
u16 nta = rx_ring->next_to_alloc;
|
||||
|
||||
/* update, and store next to alloc */
|
||||
@ -429,14 +427,9 @@ static void i40e_reuse_rx_buffer_zc(struct i40e_ring *rx_ring,
|
||||
rx_ring->next_to_alloc = (nta < rx_ring->count) ? nta : 0;
|
||||
|
||||
/* transfer page from old buffer to new buffer */
|
||||
new_bi->dma = old_bi->dma & mask;
|
||||
new_bi->dma += hr;
|
||||
|
||||
new_bi->addr = (void *)((unsigned long)old_bi->addr & mask);
|
||||
new_bi->addr += hr;
|
||||
|
||||
new_bi->handle = old_bi->handle & mask;
|
||||
new_bi->handle += rx_ring->xsk_umem->headroom;
|
||||
new_bi->dma = old_bi->dma;
|
||||
new_bi->addr = old_bi->addr;
|
||||
new_bi->handle = old_bi->handle;
|
||||
|
||||
old_bi->addr = NULL;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user