HomeFreeBSD

cxgbe(4): Do not report link state change during interface detach.

Description

cxgbe(4): Do not report link state change during interface detach.

This fixes a panic when multiple VIs are configured on an interface and
only the non-primary VI is up at the time of driver detach. The problem
was that the driver would queue a link state change notification for an
interface about to be freed.

To reproduce the panic, add "hw.cxgbe.num_vis=2" to loader.conf and

  1. kldload if_cxgbe
  2. ifconfig vcc0 up
  3. devctl detach t6nex0

    trap 0x9, rip = 0xffffffff8107db70, rsp = 0xfffffe0055263d60, rbp = 0xfffffe0055263dd0 taskqueue_run_locked() at taskqueue_run_locked+0x2a0/frame 0xfffffe0055263dd0 taskqueue_run() at taskqueue_run+0x72/frame 0xfffffe0055263df0 taskqueue_swi_run() at taskqueue_swi_run+0x18/frame 0xfffffe0055263e10 intr_event_execute_handlers() at intr_event_execute_handlers+0x249/frame 0xfffffe0055263e50 ithread_execute_handlers() at ithread_execute_handlers+0x9e/frame 0xfffffe0055263e70

Reviewed by: jhb
MFC after: 1 week
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D45864

Details

Provenance
npAuthored on Jul 3 2024, 7:01 PM
Reviewer
jhb
Differential Revision
D45864: cxgbe(4): Do not report link state change during interface detach.
Parents
rG7339a7bd9739: plic: add thead,c900-plic compatible
Branches
Unknown
Tags
Unknown