}
 }
 
+static void mlx5e_handle_rx_err_cqe(struct mlx5e_rq *rq, struct mlx5_cqe64 *cqe)
+{
+       trigger_report(rq, cqe);
+       rq->stats->wqe_err++;
+}
+
 static void mlx5e_handle_rx_cqe(struct mlx5e_rq *rq, struct mlx5_cqe64 *cqe)
 {
        struct mlx5_wq_cyc *wq = &rq->wqe.wq;
        cqe_bcnt = be32_to_cpu(cqe->byte_cnt);
 
        if (unlikely(MLX5E_RX_ERR_CQE(cqe))) {
-               trigger_report(rq, cqe);
-               rq->stats->wqe_err++;
+               mlx5e_handle_rx_err_cqe(rq, cqe);
                goto free_wqe;
        }
 
        cqe_bcnt = be32_to_cpu(cqe->byte_cnt);
 
        if (unlikely(MLX5E_RX_ERR_CQE(cqe))) {
-               rq->stats->wqe_err++;
+               mlx5e_handle_rx_err_cqe(rq, cqe);
                goto free_wqe;
        }
 
        wi->consumed_strides += cstrides;
 
        if (unlikely(MLX5E_RX_ERR_CQE(cqe))) {
-               trigger_report(rq, cqe);
-               rq->stats->wqe_err++;
+               mlx5e_handle_rx_err_cqe(rq, cqe);
                goto mpwrq_cqe_out;
        }
 
        wi->consumed_strides += cstrides;
 
        if (unlikely(MLX5E_RX_ERR_CQE(cqe))) {
-               trigger_report(rq, cqe);
-               stats->wqe_err++;
+               mlx5e_handle_rx_err_cqe(rq, cqe);
                goto mpwrq_cqe_out;
        }
 
        wi->consumed_strides += cstrides;
 
        if (unlikely(MLX5E_RX_ERR_CQE(cqe))) {
-               trigger_report(rq, cqe);
-               rq->stats->wqe_err++;
+               mlx5e_handle_rx_err_cqe(rq, cqe);
                goto mpwrq_cqe_out;
        }