From nobody Thu Oct 29 05:06:19 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4jFXJC4lRGz6xmlq for ; Thu, 29 Oct 2026 05:06:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4jFXJC40wKz4hNl for ; Thu, 29 Oct 2026 05:06:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793250379; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ezqlZh8rk7X6yNEfbM9vBVWwcF49nfsAt3HQ29fV6Ng=; b=DMj98exVb73MZGxsiFrsskf+YW2v+8ZC+8hjPF1tdsO5u6q0cZaqhnVoDPqdWrPd9bQjwL DK3u5tpdf7lksVS8d2BwPqR/UZPKuNPiBH/Q0mHkskP6aQNseqFTHymVv/y/9meEyP5ycM Gqjn4DXSbJXxvOmc/R6t64mNQ1NtKH3q65x0uMGfp4YboFj8+wejP2qLVeeKDN+kMJ8zr3 HZB/Xko6W35x0Am/75ioWfZY0M4JvwriFA3q0N/DiW5tKLgMLkMVKdoxVychshbsJBGjT+ dAsCWn85edXxk8NfsBVANpy9gjn1z6+NV7s4msLGN9xR9xpnfIpIAI2ag1Hkdw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1793250379; b=dVv+rlqHJeV3Byii+k4nFo3UBCnhiXHUV9R1Kd6i5OAWJQE0H0kx4v4P81PGvRKikzq12+ Zp/nB6CMceEM9cLjHHHhU1ptsuTM4Bh511yrz2stixo9Z87FTjbnp34uvNsnd3jeO5QDmT JpnQNOxBL4sFFYdW4hGsXIgYXZbNHLIhcLsnE5X9hGbOGkxjxfwUiwGOvnqlLvk9eCf8zQ MgG+5p4UFgR2GMAHiH9pDIoXM+iwrBYbEqoqgFTmPjGM8aeNimlG/j0NXz/geYuFjbVtWO r6TatYKwueS1dTCGMrVI4d8fmCzWXcAhVd1g6TTqzJ14m2+rPa0vGUYj6lTdbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793250379; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ezqlZh8rk7X6yNEfbM9vBVWwcF49nfsAt3HQ29fV6Ng=; b=K9GnFnYRt3TBpN6nn7/oPLJVrTLKSGZjAcT1gwyU9GAWN5o5/CtI49O4NEGg9jMo9y7vQr WiuOflgR2LsHhAScFDgncYTBMUnnEMlaCPVt47rYp0R4LsTtCUzf5RzGr/q6jHBzXy+Ruo uZFKb/5mmQq8D27Kqbk2pUEH/E6deIPO65Ld3DEUXyEai+TNLZI3K6/D2uFOfggfe3RFZx T6CAwkF1GZuvkEiFNbt+fa5nZdmZVFOne8p4UjebxKRmBXazN8/qtbHAwo3H1MAKe0zZo9 kiSA5q6Y4HZWzTvNl7yoqSvPBMYUCcOHzyembewzCCpzEeyS7w5xGP6OFORLJA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4jFXJC357KzPTG for ; Thu, 29 Oct 2026 05:06:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 332d9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 29 Oct 2026 05:06:19 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 8e74a4833210 - stable/15 - ixv: Recover E610 Hyper-V carrier without the PCI link query List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: Commits to the stable branches of the FreeBSD src repository List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 8e74a48332104fde43b3c5f0e34fc8b966d19f8c Auto-Submitted: auto-generated Date: Thu, 29 Oct 2026 05:06:19 +0000 Message-Id: <6ae2d44b.332d9.444394a4@gitrepo.freebsd.org> The branch stable/15 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=8e74a48332104fde43b3c5f0e34fc8b966d19f8c commit 8e74a48332104fde43b3c5f0e34fc8b966d19f8c Author: Kevin Bowling AuthorDate: 2026-09-14 23:51:01 +0000 Commit: Kevin Bowling CommitDate: 2026-10-29 05:06:08 +0000 ixv: Recover E610 Hyper-V carrier without the PCI link query Current Windows PF drivers do not emulate the E610 link-status query at PCI configuration offset 0x209. The installed Intel ixw 1.8.54.0 driver returns zero even with the physical port connected, leaving the VF at no carrier after an otherwise successful hn handoff. When the query returns zero, use VFLINKS for carrier only. Its speed field is not the negotiated E610 line rate: the tested 1 Gb/s port reports the default 10 Gb/s encoding. Publish an unknown speed instead, including in the verbose link-up diagnostic, and document this fallback. Keep nonzero PCI results authoritative and reject all-ones reads. Other Hyper-V families and the native E610 mailbox path are unchanged. A zero result cannot distinguish an unsupported query from a down link; in either case this fallback relies on the legacy carrier indication. The connected and disconnected ports reported VFLINKS.UP set and clear, respectively, while both returned zero from the PCI query. Sponsored by: BBOX.io (cherry picked from commit f589d1fc36cebcc298eb708bf5eae57bd1d491d7) --- share/man/man4/ixv.4 | 5 ++++- sys/dev/ixgbe/if_ixv.c | 10 +++++++--- sys/dev/ixgbe/ixgbe_hv_vf.c | 17 +++++++++++++++++ 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/share/man/man4/ixv.4 b/share/man/man4/ixv.4 index 907ff30103ec..f49d3eb88aeb 100644 --- a/share/man/man4/ixv.4 +++ b/share/man/man4/ixv.4 @@ -28,7 +28,7 @@ .\" NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS .\" SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd September 6, 2026 +.Dd September 14, 2026 .Dt IXV 4 .Os .Sh NAME @@ -76,6 +76,9 @@ PCI configuration space instead of the Intel PF/VF mailbox. The driver uses one queue pair in this environment. MAC address, VLAN, multicast filter, and receive mode policies remain under host control. +On E610, when the host does not support the PCI link-status query, +the driver uses the virtual-function carrier indication and reports an +unknown link speed. .Pp The virtual function cannot configure the physical media. Only automatic media selection is supported, and reported link state and diff --git a/sys/dev/ixgbe/if_ixv.c b/sys/dev/ixgbe/if_ixv.c index ba01e2457b49..ceae144034b7 100644 --- a/sys/dev/ixgbe/if_ixv.c +++ b/sys/dev/ixgbe/if_ixv.c @@ -1370,9 +1370,13 @@ ixv_if_update_admin_status(if_ctx_t ctx) if (bootverbose) { baudrate = ixgbe_link_speed_to_baudrate( sc->link_speed); - device_printf(dev, - "Link is up %ju Mbps Full Duplex\n", - (uintmax_t)(baudrate / IF_Mbps(1))); + if (baudrate != 0) + device_printf(dev, + "Link is up %ju Mbps Full Duplex\n", + (uintmax_t)(baudrate / IF_Mbps(1))); + else + device_printf(dev, + "Link is up (speed unknown)\n"); } sc->link_active = true; iflib_link_state_change(ctx, LINK_STATE_UP, diff --git a/sys/dev/ixgbe/ixgbe_hv_vf.c b/sys/dev/ixgbe/ixgbe_hv_vf.c index 6ce994ff06f1..b65a2438adee 100644 --- a/sys/dev/ixgbe/ixgbe_hv_vf.c +++ b/sys/dev/ixgbe/ixgbe_hv_vf.c @@ -148,6 +148,23 @@ ixgbevf_hv_check_mac_link_vf(struct ixgbe_hw *hw, ixgbe_link_speed *speed, goto out; links_reg = ixgbevf_hv_read_links(hw); + if (hw->mac.type == ixgbe_mac_E610_vf) { + *speed = IXGBE_LINK_SPEED_UNKNOWN; + if (links_reg == UINT32_MAX) + goto out; + if (links_reg == 0) { + /* + * Some hosts do not emulate the PCI link-status query. + * VFLINKS still reports carrier, but its speed is not the + * negotiated line rate. Do not report its default 10 Gb/s. + */ + links_reg = IXGBE_READ_REG(hw, IXGBE_VFLINKS); + if (links_reg != UINT32_MAX && + (links_reg & IXGBE_LINKS_UP) != 0) + mac->get_link_status = false; + goto out; + } + } if (!(links_reg & IXGBE_LINKS_UP)) goto out;