The branch stable/14 has been updated by kbowling:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=3ccccd8f50f5199b16df79a7f07f2932e4b422f8

commit 3ccccd8f50f5199b16df79a7f07f2932e4b422f8
Author:     Kevin Bowling <[email protected]>
AuthorDate: 2026-08-12 01:51:18 +0000
Commit:     Kevin Bowling <[email protected]>
CommitDate: 2026-08-28 02:20:57 +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 593b8c4396c8..912cbc62090a 100644
--- a/sys/net/iflib.c
+++ b/sys/net/iflib.c
@@ -5369,6 +5369,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);
 
@@ -6613,7 +6614,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");

Reply via email to