| From fa383f6b77a2ed788266fa8fbfb659aa284d2f58 Mon Sep 17 00:00:00 2001 |
| From: Lorenzo Bianconi <lorenzo@kernel.org> |
| Date: Sat, 19 Oct 2019 10:13:25 +0200 |
| Subject: [PATCH 5/7] net: mvneta: move header prefetch in mvneta_swbm_rx_frame |
| |
| Move data buffer prefetch in mvneta_swbm_rx_frame after |
| dma_sync_single_range_for_cpu |
| |
| Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> |
| Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> |
| Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| --- |
| drivers/net/ethernet/marvell/mvneta.c | 7 +++---- |
| 1 file changed, 3 insertions(+), 4 deletions(-) |
| |
| --- a/drivers/net/ethernet/marvell/mvneta.c |
| +++ b/drivers/net/ethernet/marvell/mvneta.c |
| @@ -2038,6 +2038,9 @@ mvneta_swbm_rx_frame(struct mvneta_port |
| rx_desc->buf_phys_addr, |
| len, dma_dir); |
| |
| + /* Prefetch header */ |
| + prefetch(data); |
| + |
| xdp->data_hard_start = data; |
| xdp->data = data + MVNETA_SKB_HEADROOM + MVNETA_MH_SIZE; |
| xdp->data_end = xdp->data + data_len; |
| @@ -2135,14 +2138,10 @@ static int mvneta_rx_swbm(struct napi_st |
| while (rx_proc < budget && rx_proc < rx_todo) { |
| struct mvneta_rx_desc *rx_desc = mvneta_rxq_next_desc_get(rxq); |
| u32 rx_status, index; |
| - unsigned char *data; |
| struct page *page; |
| |
| index = rx_desc - rxq->descs; |
| page = (struct page *)rxq->buf_virt_addr[index]; |
| - data = page_address(page); |
| - /* Prefetch header */ |
| - prefetch(data); |
| |
| rx_status = rx_desc->status; |
| rx_proc++; |