Commit 0723a3ae authored by Ioana Ciocoi Radulescu's avatar Ioana Ciocoi Radulescu Committed by David S. Miller

dpaa2-eth: Use napi_consume_skb()

While in NAPI context, free skbs by calling napi_consume_skb()
instead of dev_kfree_skb(), to take advantage of the bulk freeing
mechanism.
Signed-off-by: default avatarIoana Radulescu <ruxandra.radulescu@nxp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 27c87486
...@@ -657,7 +657,7 @@ static int build_single_fd(struct dpaa2_eth_priv *priv, ...@@ -657,7 +657,7 @@ static int build_single_fd(struct dpaa2_eth_priv *priv,
* dpaa2_eth_tx(). * dpaa2_eth_tx().
*/ */
static void free_tx_fd(const struct dpaa2_eth_priv *priv, static void free_tx_fd(const struct dpaa2_eth_priv *priv,
const struct dpaa2_fd *fd) const struct dpaa2_fd *fd, bool in_napi)
{ {
struct device *dev = priv->net_dev->dev.parent; struct device *dev = priv->net_dev->dev.parent;
dma_addr_t fd_addr; dma_addr_t fd_addr;
...@@ -712,7 +712,7 @@ static void free_tx_fd(const struct dpaa2_eth_priv *priv, ...@@ -712,7 +712,7 @@ static void free_tx_fd(const struct dpaa2_eth_priv *priv,
skb_free_frag(skbh); skb_free_frag(skbh);
/* Move on with skb release */ /* Move on with skb release */
dev_kfree_skb(skb); napi_consume_skb(skb, in_napi);
} }
static netdev_tx_t dpaa2_eth_tx(struct sk_buff *skb, struct net_device *net_dev) static netdev_tx_t dpaa2_eth_tx(struct sk_buff *skb, struct net_device *net_dev)
...@@ -795,7 +795,7 @@ static netdev_tx_t dpaa2_eth_tx(struct sk_buff *skb, struct net_device *net_dev) ...@@ -795,7 +795,7 @@ static netdev_tx_t dpaa2_eth_tx(struct sk_buff *skb, struct net_device *net_dev)
if (unlikely(err < 0)) { if (unlikely(err < 0)) {
percpu_stats->tx_errors++; percpu_stats->tx_errors++;
/* Clean up everything, including freeing the skb */ /* Clean up everything, including freeing the skb */
free_tx_fd(priv, &fd); free_tx_fd(priv, &fd, false);
} else { } else {
fd_len = dpaa2_fd_get_len(&fd); fd_len = dpaa2_fd_get_len(&fd);
percpu_stats->tx_packets++; percpu_stats->tx_packets++;
...@@ -837,7 +837,7 @@ static void dpaa2_eth_tx_conf(struct dpaa2_eth_priv *priv, ...@@ -837,7 +837,7 @@ static void dpaa2_eth_tx_conf(struct dpaa2_eth_priv *priv,
/* Check frame errors in the FD field */ /* Check frame errors in the FD field */
fd_errors = dpaa2_fd_get_ctrl(fd) & DPAA2_FD_TX_ERR_MASK; fd_errors = dpaa2_fd_get_ctrl(fd) & DPAA2_FD_TX_ERR_MASK;
free_tx_fd(priv, fd); free_tx_fd(priv, fd, true);
if (likely(!fd_errors)) if (likely(!fd_errors))
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment