From: Ioana Ciornei <[email protected]> We can avoid an indirect call per Tx packet by wrapping the enqueue of the frame descriptor with the appropriate helper.
Signed-off-by: Ioana Ciornei <[email protected]> --- drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c index 492943bb9c48..7702b921ab0b 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c @@ -266,8 +266,11 @@ static int dpaa2_eth_xdp_flush(struct dpaa2_eth_priv *priv, num_fds = xdp_fds->num; max_retries = num_fds * DPAA2_ETH_ENQUEUE_RETRIES; while (total_enqueued < num_fds && retries < max_retries) { - err = priv->enqueue(priv, fq, &fds[total_enqueued], - 0, num_fds - total_enqueued, &enqueued); + err = INDIRECT_CALL_2(priv->enqueue, + dpaa2_eth_enqueue_fq_multiple, + dpaa2_eth_enqueue_qd, + priv, fq, &fds[total_enqueued], + 0, num_fds - total_enqueued, &enqueued); if (err == -EBUSY) { percpu_extras->tx_portal_busy += ++retries; continue; @@ -1153,7 +1156,10 @@ static netdev_tx_t __dpaa2_eth_tx(struct sk_buff *skb, * the Tx confirmation callback for this frame */ for (i = 0; i < DPAA2_ETH_ENQUEUE_RETRIES; i++) { - err = priv->enqueue(priv, fq, &fd, prio, 1, NULL); + err = INDIRECT_CALL_2(priv->enqueue, + dpaa2_eth_enqueue_fq_multiple, + dpaa2_eth_enqueue_qd, + priv, fq, &fd, prio, 1, NULL); if (err != -EBUSY) break; } -- 2.30.0
