git: 924a15ac2f19 - stable/15 - iavf: Resume AdminQ processing after PF reset
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 24 Aug 2026 00:53:42 UTC
The branch stable/15 has been updated by kbowling:
URL: https://cgit.FreeBSD.org/src/commit/?id=924a15ac2f19b98a40d71ebe15b973e3865ab4a6
commit 924a15ac2f19b98a40d71ebe15b973e3865ab4a6
Author: Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2026-08-10 10:54:26 +0000
Commit: Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2026-08-24 00:49:42 +0000
iavf: Resume AdminQ processing after PF reset
A PF reset indication leaves IAVF_STATE_RESET_PENDING set while the
VF recreates its AdminQ and negotiates new resources. The ordinary
AdminQ task refuses to consume messages while that state is set.
Consequently, the first DISABLE_QUEUES reply after successful mailbox
rediscovery remains in the receive queue and initialization times out.
Later retries and manual interface restarts repeat the same cycle.
Clear the stale reset indication once VERSION and GET_VF_RESOURCES have
succeeded, before enabling interrupts and resuming normal virtchnl
requests.
(cherry picked from commit 02fbb1ce07f60fab82e21e5bbe2dae85f024bb55)
---
sys/dev/iavf/if_iavf_iflib.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/sys/dev/iavf/if_iavf_iflib.c b/sys/dev/iavf/if_iavf_iflib.c
index 82ba7a92b008..c9fed8493103 100644
--- a/sys/dev/iavf/if_iavf_iflib.c
+++ b/sys/dev/iavf/if_iavf_iflib.c
@@ -959,6 +959,14 @@ iavf_reestablish_vc(struct iavf_sc *sc)
goto fail;
}
+ /*
+ * RESET_PENDING prevents the ordinary AdminQ task from consuming
+ * messages while the queue may still belong to the pre-reset device.
+ * The successful VERSION and GET_VF_RESOURCES exchange above proves
+ * that the reset has completed and this is the replacement AdminQ.
+ * Clear the stale indication before normal virtchnl requests resume.
+ */
+ iavf_clear_state(&sc->state, IAVF_STATE_RESET_PENDING);
iavf_enable_adminq_irq(hw);
return (0);