mirror of
https://github.com/opnsense/src.git
synced 2026-03-06 07:10:41 -05:00
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 # kldload if_cxgbe # ifconfig vcc0 up # 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 Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D45864 (cherry picked from commit dc20d49aa939caea365cbdf0341b00de69253be4) |
||
|---|---|---|
| .. | ||
| common | ||
| crypto | ||
| cudbg | ||
| cxgbei | ||
| firmware | ||
| iw_cxgbe | ||
| tom | ||
| adapter.h | ||
| if_cc.c | ||
| if_ccv.c | ||
| if_cxl.c | ||
| if_cxlv.c | ||
| offload.h | ||
| osdep.h | ||
| t4_clip.c | ||
| t4_clip.h | ||
| t4_filter.c | ||
| t4_if.m | ||
| t4_ioctl.h | ||
| t4_iov.c | ||
| t4_l2t.c | ||
| t4_l2t.h | ||
| t4_main.c | ||
| t4_mp_ring.c | ||
| t4_mp_ring.h | ||
| t4_netmap.c | ||
| t4_sched.c | ||
| t4_sge.c | ||
| t4_smt.c | ||
| t4_smt.h | ||
| t4_tracer.c | ||
| t4_vf.c | ||