The branch stable/15 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=5012a1839d052defe044467b4c1ee7421dc09a22
commit 5012a1839d052defe044467b4c1ee7421dc09a22 Author: Kevin Bowling <[email protected]> AuthorDate: 2026-08-12 01:51:18 +0000 Commit: Kevin Bowling <[email protected]> CommitDate: 2026-08-28 02:11:56 +0000 iflib: Initialize the VFLR task unconditionally The VFLR task was initialized only from drivers MSI-X interrupt assignment paths. ixl's legacy interrupt handler can nevertheless defer VFLR work, leaving an uninitialized task. Even with MSI-X, the admin interrupt was established before the task was initialized. Initialize it alongside the other private tasks. The existing detach check and private-taskqueue drains then cover its lifecycle for every interrupt mode and registration failure. Sponsored by: BBOX.io (cherry picked from commit b4208a67edc2eb7898a9ff2a6f3990c6852910e4) --- sys/net/iflib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net/iflib.c b/sys/net/iflib.c index cc17efb0bce6..258650e127d2 100644 --- a/sys/net/iflib.c +++ b/sys/net/iflib.c @@ -5229,6 +5229,7 @@ iflib_device_register(device_t dev, void *sc, if_shared_ctx_t sctx, if_ctx_t *ct TASK_INIT(&ctx->ifc_admin_task, 0, _task_fn_admin, ctx); TASK_INIT(&ctx->ifc_led_task, 0, _task_fn_led, ctx); + TASK_INIT(&ctx->ifc_vflr_task, 0, _task_fn_iov, ctx); IFLIB_REGISTER_FAIL_POINT(dev, register_after_taskqueue, err, fail_cleanup); @@ -6473,7 +6474,6 @@ iflib_softirq_alloc_generic(if_ctx_t ctx, if_irq_t irq, iflib_intr_type_t type, NET_GROUPTASK_INIT(gtask, 0, fn, q); break; case IFLIB_INTR_IOV: - TASK_INIT(&ctx->ifc_vflr_task, 0, _task_fn_iov, ctx); return; default: panic("unknown net intr type");
