Lines 6060-6065
iflib_legacy_setup(if_ctx_t ctx, driver_filter_t f
Link Here
|
6060 |
gtask_fn_t *fn; |
6060 |
gtask_fn_t *fn; |
6061 |
void *q; |
6061 |
void *q; |
6062 |
int err, tqrid; |
6062 |
int err, tqrid; |
|
|
6063 |
bool rx_only; |
6063 |
|
6064 |
|
6064 |
q = &ctx->ifc_rxqs[0]; |
6065 |
q = &ctx->ifc_rxqs[0]; |
6065 |
info = &rxq[0].ifr_filter_info; |
6066 |
info = &rxq[0].ifr_filter_info; |
Lines 6067-6083
iflib_legacy_setup(if_ctx_t ctx, driver_filter_t f
Link Here
|
6067 |
tqg = qgroup_if_io_tqg; |
6068 |
tqg = qgroup_if_io_tqg; |
6068 |
tqrid = *rid; |
6069 |
tqrid = *rid; |
6069 |
fn = _task_fn_rx; |
6070 |
fn = _task_fn_rx; |
|
|
6071 |
rx_only = !!(ctx->ifc_sctx->isc_flags & IFLIB_SINGLE_IRQ_RX_ONLY); |
6070 |
|
6072 |
|
6071 |
ctx->ifc_flags |= IFC_LEGACY; |
6073 |
ctx->ifc_flags |= IFC_LEGACY; |
6072 |
info->ifi_filter = filter; |
6074 |
info->ifi_filter = filter; |
6073 |
info->ifi_filter_arg = filter_arg; |
6075 |
info->ifi_filter_arg = filter_arg; |
6074 |
info->ifi_task = gtask; |
6076 |
info->ifi_task = gtask; |
6075 |
info->ifi_ctx = q; |
6077 |
info->ifi_ctx = rx_only ? ctx : q; |
6076 |
|
6078 |
|
6077 |
dev = ctx->ifc_dev; |
6079 |
dev = ctx->ifc_dev; |
6078 |
/* We allocate a single interrupt resource */ |
6080 |
/* We allocate a single interrupt resource */ |
6079 |
if ((err = _iflib_irq_alloc(ctx, irq, tqrid, iflib_fast_intr_rxtx, |
6081 |
err = _iflib_irq_alloc(ctx, irq, tqrid, rx_only ? iflib_fast_intr_ctx : |
6080 |
NULL, info, name)) != 0) |
6082 |
iflib_fast_intr_rxtx, NULL, info, name); |
|
|
6083 |
if (err != 0) |
6081 |
return (err); |
6084 |
return (err); |
6082 |
GROUPTASK_INIT(gtask, 0, fn, q); |
6085 |
GROUPTASK_INIT(gtask, 0, fn, q); |
6083 |
res = irq->ii_res; |
6086 |
res = irq->ii_res; |