[openwrt/openwrt] ramips: use napi_alloc_frag and skb_free_frag

LEDE Commits lede-commits at lists.infradead.org
Mon Feb 5 01:18:18 PST 2018


nbd pushed a commit to openwrt/openwrt.git, branch master:
https://git.lede-project.org/d3ea5fc9f33e0951e36a6443a803b916a94d3b4f

commit d3ea5fc9f33e0951e36a6443a803b916a94d3b4f
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Tue Dec 5 16:40:42 2017 +0100

    ramips: use napi_alloc_frag and skb_free_frag
    
    Slightly improves rx performance
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 .../linux/ramips/files-4.9/drivers/net/ethernet/mtk/mtk_eth_soc.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/target/linux/ramips/files-4.9/drivers/net/ethernet/mtk/mtk_eth_soc.c b/target/linux/ramips/files-4.9/drivers/net/ethernet/mtk/mtk_eth_soc.c
index f2c1109..79ec17e 100644
--- a/target/linux/ramips/files-4.9/drivers/net/ethernet/mtk/mtk_eth_soc.c
+++ b/target/linux/ramips/files-4.9/drivers/net/ethernet/mtk/mtk_eth_soc.c
@@ -216,7 +216,7 @@ static void fe_clean_rx(struct fe_priv *priv)
 							 ring->rx_dma[i].rxd1,
 							 ring->rx_buf_size,
 							 DMA_FROM_DEVICE);
-				put_page(virt_to_head_page(ring->rx_data[i]));
+				skb_free_frag(ring->rx_data[i]);
 			}
 
 		kfree(ring->rx_data);
@@ -834,7 +834,7 @@ static int fe_poll_rx(struct napi_struct *napi, int budget,
 			break;
 
 		/* alloc new buffer */
-		new_data = netdev_alloc_frag(ring->frag_size);
+		new_data = napi_alloc_frag(ring->frag_size);
 		if (unlikely(!new_data)) {
 			stats->rx_dropped++;
 			goto release_desc;
@@ -844,14 +844,14 @@ static int fe_poll_rx(struct napi_struct *napi, int budget,
 					  ring->rx_buf_size,
 					  DMA_FROM_DEVICE);
 		if (unlikely(dma_mapping_error(&netdev->dev, dma_addr))) {
-			put_page(virt_to_head_page(new_data));
+			skb_free_frag(new_data);
 			goto release_desc;
 		}
 
 		/* receive data */
 		skb = build_skb(data, ring->frag_size);
 		if (unlikely(!skb)) {
-			put_page(virt_to_head_page(new_data));
+			skb_free_frag(new_data);
 			goto release_desc;
 		}
 		skb_reserve(skb, NET_SKB_PAD + NET_IP_ALIGN);



More information about the lede-commits mailing list