git: db2bf4553ce3 - main - ixgbe: fix host interface timeout detection

Kevin Bowling <[email protected]> Fri, 31 Jul 2026 11:56:23 +0000
Newsgroups gmane.os.freebsd.devel.cvs.src
Message-ID <6a6c8d67.40f7c.1a425520__48592.2732435697$1785499002$gmane$org@gitrepo.freebsd.org>
The branch main has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=db2bf4553ce32fdcae00f6e7392a6c2010247dd6

commit db2bf4553ce32fdcae00f6e7392a6c2010247dd6
Author:     Kevin Bowling <[email protected]>
AuthorDate: 2026-07-28 11:21:14 +0000
Commit:     Kevin Bowling <[email protected]>
CommitDate: 2026-07-31 11:55:39 +0000

    ixgbe: fix host interface timeout detection
    
    The host-interface polling loop was scaled from milliseconds to
    microseconds, but its terminal test was left using the unscaled timeout.
    Completion at that intermediate iteration can be reported as a timeout,
    while actual expiry is not recognized and can accept stale status.
    
    Test against the scaled loop bound used by the polling loop.
    
    Fixes:          f46d75c90f5f ("ixgbe: improve MDIO performance by reducing semaphore/IPC delays")
    MFC after:      1 week
---
 sys/dev/ixgbe/ixgbe_common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/dev/ixgbe/ixgbe_common.c b/sys/dev/ixgbe/ixgbe_common.c
index 0b6bf728f25e..ab763595f0b5 100644
--- a/sys/dev/ixgbe/ixgbe_common.c
+++ b/sys/dev/ixgbe/ixgbe_common.c
@@ -4646,7 +4646,7 @@ s32 ixgbe_hic_unlocked(struct ixgbe_hw *hw, u32 *buffer, u32 length,
 		return IXGBE_SUCCESS;
 
 	/* Check command completion */
-	if ((timeout && i == timeout) ||
+	if ((timeout && i == timeout * 1000) ||
 	    !(IXGBE_READ_REG(hw, IXGBE_HICR) & IXGBE_HICR_SV)) {
 		ERROR_REPORT1(IXGBE_ERROR_CAUTION,
 			      "Command has failed with no status valid.\n");