git: 02fbb1ce07f6 - main - iavf: Resume AdminQ processing after PF reset
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 10 Aug 2026 14:00:12 UTC
The branch main has been updated by kbowling:
URL: https://cgit.FreeBSD.org/src/commit/?id=02fbb1ce07f60fab82e21e5bbe2dae85f024bb55
commit 02fbb1ce07f60fab82e21e5bbe2dae85f024bb55
Author: Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2026-08-10 10:54:26 +0000
Commit: Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2026-08-10 13:59:53 +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.
MFC after: 2 weeks
---
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);