mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-19 03:06:35 +00:00
ath79: ag71xx: reuse skbuff_head with napi skb api
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>
This commit is contained in:
parent
6d423ffbd1
commit
265f402fbd
@ -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;
|
||||
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user