Skip to content

Commit

Permalink
ath79: ag71xx: reuse skbuff_head with napi skb api
Browse files Browse the repository at this point in the history
napi_build_skb() reuses NAPI skbuff_head cache in order to save some
cycles on freeing/allocating skbuff_heads on every new Rx or completed
Tx.
Use napi_consume_skb() to feed the cache with skbuff_heads of completed
Tx so it's never empty.

Signed-off-by: Sieng Piaw Liew <liew.s.piaw@gmail.com>
[ fixed commit title ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
  • Loading branch information
spliew89 authored and Ansuel committed Jul 4, 2022
1 parent 6d423ff commit 265f402
Showing 1 changed file with 5 additions and 1 deletion.
Expand Up @@ -1278,7 +1278,7 @@ static int ag71xx_tx_packets(struct ag71xx *ag, bool flush)
if (!skb)
continue;

dev_kfree_skb_any(skb);
napi_consume_skb(skb, !flush);
ring->buf[i].skb = NULL;

bytes_compl += ring->buf[i].len;
Expand Down Expand Up @@ -1352,7 +1352,11 @@ static int ag71xx_rx_packets(struct ag71xx *ag, int limit)
dev->stats.rx_packets++;
dev->stats.rx_bytes += pktlen;

#if LINUX_VERSION_CODE < KERNEL_VERSION(5,12,0)
skb = build_skb(ring->buf[i].rx_buf, ag71xx_buffer_size(ag));
#else
skb = napi_build_skb(ring->buf[i].rx_buf, ag71xx_buffer_size(ag));
#endif
if (!skb) {
skb_free_frag(ring->buf[i].rx_buf);
goto next;
Expand Down

0 comments on commit 265f402

Please sign in to comment.