diff options
author | Sieng Piaw Liew <liew.s.piaw@gmail.com> | 2022-06-23 12:49:28 +0800 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2023-03-04 19:28:16 +0100 |
commit | 330cbcc09c4d142279b958e6d0e4b764dacd686c (patch) | |
tree | d2415c27d450451687ba181b940a08fcb9a918eb /target | |
parent | a332b8cc9cb1536684d1a33291bb9db6b22cff99 (diff) | |
download | upstream-330cbcc09c4d142279b958e6d0e4b764dacd686c.tar.gz upstream-330cbcc09c4d142279b958e6d0e4b764dacd686c.tar.bz2 upstream-330cbcc09c4d142279b958e6d0e4b764dacd686c.zip |
bmips: switch to napi_build_skb() to reuse skbuff_heads
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>
Diffstat (limited to 'target')
-rw-r--r-- | target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6368-enetsw.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6368-enetsw.c b/target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6368-enetsw.c index 854bcc0a8c..962f9ac887 100644 --- a/target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6368-enetsw.c +++ b/target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6368-enetsw.c @@ -407,7 +407,7 @@ static int bcm6368_enetsw_receive_queue(struct net_device *dev, int budget) frag_size = priv->rx_frag_size; } - skb = build_skb(buf, frag_size); + skb = napi_build_skb(buf, frag_size); if (unlikely(!skb)) { skb_free_frag(buf); dev->stats.rx_dropped++; @@ -475,7 +475,7 @@ static int bcm6368_enetsw_tx_reclaim(struct net_device *dev, int force) if (desc->len_stat & DMADESC_UNDER_MASK) dev->stats.tx_errors++; - dev_kfree_skb(skb); + napi_consume_skb(skb, !force); released++; } |