Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/mlx5/mlx5_en/mlx5_en_rx.c
Show First 20 Lines • Show All 530 Lines • ▼ Show 20 Lines | for (i = 0; i < budget; i++) { | ||||
if (unlikely((cqe->op_own >> 4) != MLX5_CQE_RESP_SEND)) { | if (unlikely((cqe->op_own >> 4) != MLX5_CQE_RESP_SEND)) { | ||||
mlx5e_dump_err_cqe(&rq->cq, rq->rqn, (const void *)cqe); | mlx5e_dump_err_cqe(&rq->cq, rq->rqn, (const void *)cqe); | ||||
rq->stats.wqe_err++; | rq->stats.wqe_err++; | ||||
goto wq_ll_pop; | goto wq_ll_pop; | ||||
} | } | ||||
if (pfil != NULL && PFIL_HOOKED_IN(pfil)) { | if (pfil != NULL && PFIL_HOOKED_IN(pfil)) { | ||||
seglen = MIN(byte_cnt, MLX5E_MAX_RX_BYTES); | seglen = MIN(byte_cnt, MLX5E_MAX_RX_BYTES); | ||||
rv = pfil_run_hooks(rq->channel->priv->pfil, | rv = pfil_mem_in(rq->channel->priv->pfil, | ||||
rq->mbuf[wqe_counter].data, rq->ifp, | rq->mbuf[wqe_counter].data, seglen, rq->ifp, &mb); | ||||
seglen | PFIL_MEMPTR | PFIL_IN, NULL); | |||||
switch (rv) { | switch (rv) { | ||||
case PFIL_DROPPED: | case PFIL_DROPPED: | ||||
case PFIL_CONSUMED: | case PFIL_CONSUMED: | ||||
/* | /* | ||||
* Filter dropped or consumed it. In | * Filter dropped or consumed it. In | ||||
* either case, we can just recycle | * either case, we can just recycle | ||||
* buffer; there is no more work to do. | * buffer; there is no more work to do. | ||||
*/ | */ | ||||
rq->stats.packets++; | rq->stats.packets++; | ||||
goto wq_ll_pop; | goto wq_ll_pop; | ||||
case PFIL_REALLOCED: | case PFIL_REALLOCED: | ||||
/* | /* | ||||
* Filter copied it; recycle buffer | * Filter copied it; recycle buffer | ||||
* and receive the new mbuf allocated | * and receive the new mbuf allocated | ||||
* by the Filter | * by the Filter | ||||
*/ | */ | ||||
mb = pfil_mem2mbuf(rq->mbuf[wqe_counter].data); | |||||
goto rx_common; | goto rx_common; | ||||
default: | default: | ||||
/* | /* | ||||
* The Filter said it was OK, so | * The Filter said it was OK, so | ||||
* receive like normal. | * receive like normal. | ||||
*/ | */ | ||||
KASSERT(rv == PFIL_PASS, | KASSERT(rv == PFIL_PASS, | ||||
("Filter returned %d!\n", rv)); | ("Filter returned %d!\n", rv)); | ||||
▲ Show 20 Lines • Show All 118 Lines • Show Last 20 Lines |