diff options
| author | Kevin Bowling <kbowling@FreeBSD.org> | 2026-08-10 11:56:57 +0000 |
|---|---|---|
| committer | Kevin Bowling <kbowling@FreeBSD.org> | 2026-08-10 13:59:59 +0000 |
| commit | 0048dfddc049f3ef050ba16544f42503d5c42db8 (patch) | |
| tree | 2d1f06c9ec32dfb82406eb568689602a90f28c54 /sys/netinet6/(public-mirror) | |
| parent | 02fbb1ce07f60fab82e21e5bbe2dae85f024bb55 (diff) | |
A PF reset has a warning interval before the hardware reset begins.
Cooperative VF drivers respond to the reset event by stopping and
releasing their receive buffers, but notifying VFs did not stop the
hardware queues. An active VF could therefore DMA through its old
rings into freed mbuf clusters during the warning interval.
Put every enabled VF in reset, drain its PCIe transactions, disable its
queues, wait for receive queue shutdown, and drain transactions again
before tearing down the PF HMC and AdminQ.
Hold VFs in reset again while rebuilding the firmware topology. Release
VF reset before programming the replacement VSI and queue mappings,
since VF reset clears those registers, and publish VFACTIVE only after
reconstruction succeeds. Leave a VF held in reset if rebuilding it
fails.
Fixes: 983e628a0c47 ("ixl: Rebuild VF resources after a PF reset")
MFC after: 2 weeks
Diffstat (limited to 'sys/netinet6/(public-mirror)')
0 files changed, 0 insertions, 0 deletions
