Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Aug 2026 14:00:12 +0000
Message-ID:  <6a79d96c.1feb1.7943a2d8@gitrepo.freebsd.org>

index | next in thread | raw e-mail

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);
 


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a79d96c.1feb1.7943a2d8>