From nobody Tue Sep 15 02:08:29 2026 X-Original-To: dev-commits-src-all@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 4hkQRK53Bzz6sMcP for ; Tue, 15 Sep 2026 02:08:29 +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 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hkQRK42QLz4clY for ; Tue, 15 Sep 2026 02:08:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789438109; 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=E9Wk64FGFjHay01bksqTUbxVgLHvGlW6JaHlqVkl1fU=; b=ajOMoTLC0M5HNPKO47GFnDzKJLulxsC4WSs8azooWGWWmDqEEabuOs03G+MI4WGXT50ymI 3Gar3DxOrPbrZCfWZbiSZpG67xeOkzQ9/MFzcvCONV0t2OyJpkIzksUw1oGWda9Qw7xZ56 V1c+LedNCXb4xRsuSHDcW8Gsl2myMqNGNw9zZUvPAdf/8udrwqGsIvmOMk9x5mGYvnDSwd OnMuous+dI/j+IemejhDv5i3bcLcw97DQv4sJ7G99CC5KcpVIukRauDISmZ7NZMWDB7pHg lfVQjxj4g63mM5PkqRnJkCuilivjNFLiINYFINktIIxbz+Fq1zRUFQa1Z6Ib1g== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1789438109; b=CPn6APUI8hLbTooKg9Vr+0CMLcLkzsY1erPpjqbMDybk+rwbpbArF+IuvdCa8g548BVwF7 55RonkmPry0rA3386q4457g2GqmnpZCpShrGLQ+j2o0XtEl9GaXBu1K1H7cWCoQKaIJG46 tEUKriFP4gTpiVHt4iFkuNtPTOCNpEMN3UqJJ4BHIeLQCJTAVuaEer7vUI+QGwqktqVrXW kQWxg+bQDRuY2kMmbbJSwGEDQoDQstcblBFw90XXEQr8RQj6WKVJc4tqkc6AF5tFmMxMu2 S+q7K6a1XC4q1sQ4QFKudjwkhsR1zdh5pKUB/arCE4hOpPNRO5pBmLau+iXbuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789438109; 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=E9Wk64FGFjHay01bksqTUbxVgLHvGlW6JaHlqVkl1fU=; b=scOjZQEesjQKCPRkdkcmxUI++ue/4FOi2etlgFYLf80oAfkPIiTIRzkag6X8Er2osiF0cm LiBRVxjx7Dvrq5mR5JnVZRo7KlGs0lWyo2pH6+wn/tBy0cuJh7JX3/sy3+5Yjehswm4yrP 02lOTqoD5n6frvTU/N+qVYi4tTfxsMlsz3H1eyA3bUyW3WLTnZHi/njyFAtCH7J/nJVWPF G5+pB9QuGtu5Ut8ggHU9XwillJiPSxrY8pSV2H8E20Cs5KPahNzw90LvwHNYhoCTHv7WTy 7xjyAI03lMIqnp6yCPytMXpNDQ0ab/ywQQlxEENsX3lMHRmW417X9qLL+BRv3Q== 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 4hkQRK2pMnzgyX for ; Tue, 15 Sep 2026 02:08:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 250f9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 15 Sep 2026 02:08:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kevin Bowling Subject: git: f589d1fc36ce - main - ixv: Recover E610 Hyper-V carrier without the PCI link query List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: 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/main X-Git-Reftype: branch X-Git-Commit: f589d1fc36cebcc298eb708bf5eae57bd1d491d7 Auto-Submitted: auto-generated Date: Tue, 15 Sep 2026 02:08:29 +0000 Message-Id: <6aa8a89d.250f9.60acebe9@gitrepo.freebsd.org> The branch main has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=f589d1fc36cebcc298eb708bf5eae57bd1d491d7 commit f589d1fc36cebcc298eb708bf5eae57bd1d491d7 Author: Kevin Bowling AuthorDate: 2026-09-14 23:51:01 +0000 Commit: Kevin Bowling CommitDate: 2026-09-15 02:07:11 +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. MFC after: 2 weeks Sponsored by: BBOX.io --- 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 a5e8a9b39de1..c3d56e2ae913 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;