net/mlx5e: RX, Avoid indirect call in representor CQE handling
authorTariq Toukan <tariqt@mellanox.com>
Thu, 30 Apr 2020 12:52:53 +0000 (15:52 +0300)
committerSaeed Mahameed <saeedm@mellanox.com>
Thu, 16 Jul 2020 23:36:56 +0000 (16:36 -0700)
Use INDIRECT_CALL_2() helper to avoid the cost of the indirect call
when/if CONFIG_RETPOLINE=y.

Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Reviewed-by: Maxim Mikityanskiy <maximmi@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c

index 8b24e44f860a8e79b062f5f635f2250f9e773204..74860f3827b1a195dd769069e23994c112e2d174 100644 (file)
@@ -1266,7 +1266,10 @@ void mlx5e_handle_rx_cqe_rep(struct mlx5e_rq *rq, struct mlx5_cqe64 *cqe)
                goto free_wqe;
        }
 
-       skb = rq->wqe.skb_from_cqe(rq, cqe, wi, cqe_bcnt);
+       skb = INDIRECT_CALL_2(rq->wqe.skb_from_cqe,
+                             mlx5e_skb_from_cqe_linear,
+                             mlx5e_skb_from_cqe_nonlinear,
+                             rq, cqe, wi, cqe_bcnt);
        if (!skb) {
                /* probably for XDP */
                if (__test_and_clear_bit(MLX5E_RQ_FLAG_XDP_XMIT, rq->flags)) {