From nobody Fri Jul 10 19:15:52 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 4gxhPh5r6dz6cvxg for ; Fri, 10 Jul 2026 19:15:52 +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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gxhPh3854z3wWt for ; Fri, 10 Jul 2026 19:15:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1783710952; 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=S8Fo2KXzwv5C1kmupVS82FWT1e5JnMdJSnLvqe3JYbc=; b=G3lqEIXjUj7WS7rlG0QVQUrOT01sNWtRWfKu3CqZkqAOf8PC14VY3JiH5iCHz0a+HITgs9 6hI5nV7zCnybTRQLRxeBmLr8uRoXQhUOQITqYHN/oIf6TSJ5b8ArDiepFTlSVMBoFD3cvT uAk8WCWJh6L9HJXb67h4d6Lee05R5Z/VE/SOX8fEoQT9eel7O65Ev/wAw4VPZbNcyrFRS0 JXXSB9bz9oF4HV3S3yeeJrnw0Sb4UjpyaCYq7OtwcQB6W54B9+OyKuxpDOAENPMlVdV82R qQWK6kn49loGRuDRho4/tRyZQbNUTXcpM/EwU0Xr/iCuexgokZEUSc/6jfO1UA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1783710952; a=rsa-sha256; cv=none; b=lA1vvFG3LSKWRlRY21O8Gy6Qidd3iBndgR3nk9TAVaG932YKISkYdPOB60ZUwZARj1Rkv7 NFpv+8f5mY1z5wjk5JohsH1UH7LYeqeUx8WjbjA9tnqCYRQrS4BnZ5pM+BfUVPIMlxr6f/ kUlOnbtUN3y6To9TSYEm4dlYV9Hx7hzgqXcLPYQgQtxYRLcxO67Nfhh81N1wbQksYDE6dD t5UmPj1b/L0d947dyRBYZureUf/aGL4mgS7uRVm8vP3N+lIZfovyuCJBJj5/hOt1oxEy7f DGfO5qvEkTKTQnqh7uE9VCENoH7rPWuw0nixTtFj1vYf/UgqOyx27pJPbjKNeQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1783710952; 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=S8Fo2KXzwv5C1kmupVS82FWT1e5JnMdJSnLvqe3JYbc=; b=Vh7TkDtd+QIQZtoz02A2PDOxgIT+rUA9Sr0PhoRbtNNdBwgUmIsQjiN04ZVGgWKj4WKxGa sT4GLuT+kpJX6o7L7f/sbg2v6gdPCN6B1cneZJhAaInPj80FLDqdZ+QkGOVba/wxNi80Ft xSpJNf+bSGwDmu/FS3OwmHPBUL17ucJtEqIas+dg2fSYSNlUmcKgbK5SRqLVFtnWrzUHWA 0c11XGnms8U9cert8OvSpw1giFsXAjJfgxheRO7GLeZkpoYLRRRTR8la959admT0bjaTCv k9EXVMk9Zr4eZDUzyrHFTd3dLF31goTZ7AJb+Jce2dYL5Y0s0pf+Kbxgy3UCyA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gxhPh1tdjz174l for ; Fri, 10 Jul 2026 19:15:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1926e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 10 Jul 2026 19:15:52 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Krzysztof Galazka Subject: git: 15ef9ad2f5f4 - stable/14 - ice(4): Fix link speed after changing cable type 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: kgalazka X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 15ef9ad2f5f46c4172121f22ba9d051c08365814 Auto-Submitted: auto-generated Date: Fri, 10 Jul 2026 19:15:52 +0000 Message-Id: <6a5144e8.1926e.35f496ca@gitrepo.freebsd.org> The branch stable/14 has been updated by kgalazka: URL: https://cgit.FreeBSD.org/src/commit/?id=15ef9ad2f5f46c4172121f22ba9d051c08365814 commit 15ef9ad2f5f46c4172121f22ba9d051c08365814 Author: Krzysztof Galazka AuthorDate: 2026-06-12 11:56:15 +0000 Commit: Krzysztof Galazka CommitDate: 2026-07-10 19:15:18 +0000 ice(4): Fix link speed after changing cable type When interface was connected to a link partner with a cable type limitting maximum supported speed, e.g. SFP+ cable in 25G port, driver incorrectly saved a supported speed as the user configured speed. This prevented interface from using all supported speeds after switching cable to SFP28. Link was established at 10G as supported by previously used SFP+ cable. Don't set user requested speed unless actually configured by an user, to allow automatic selection of highest available speed. Only when user sets custom config using advertise_speed sysctl save it and try to apply after cable is changed. Also don't save initial supported speeds if FW supports reporting default PHY config. Signed-off-by: Krzysztof Galazka Reviewed by: kbowling, erj, mateusz.moga_intel.com Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D53611 (cherry picked from commit 310145642312e1c5fb3d8efa8321cf905d0354c4) --- sys/dev/ice/ice_lib.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/sys/dev/ice/ice_lib.c b/sys/dev/ice/ice_lib.c index fd7189130c25..54267d25941e 100644 --- a/sys/dev/ice/ice_lib.c +++ b/sys/dev/ice/ice_lib.c @@ -9652,8 +9652,7 @@ ice_apply_saved_phy_req_to_cfg(struct ice_softc *sc, finalize_link_speed: - /* Cache new user settings for speeds */ - pi->phy.curr_user_speed_req = phy_data.user_speeds_intr; + /* Update phy types in config */ cfg->phy_type_low = htole64(phy_low); cfg->phy_type_high = htole64(phy_high); @@ -9959,16 +9958,21 @@ ice_init_saved_phy_cfg(struct ice_softc *sc) device_t dev = sc->dev; int status; u64 phy_low, phy_high; - u8 report_mode = ICE_AQC_REPORT_TOPO_CAP_MEDIA; + /* + * If the FW supports Link Management V2 we don't need + * to save initial PHY configuration as it can be always + * read from FW. + */ if (ice_is_bit_set(sc->feat_en, ICE_FEATURE_LINK_MGMT_VER_2)) - report_mode = ICE_AQC_REPORT_DFLT_CFG; - status = ice_aq_get_phy_caps(pi, false, report_mode, &pcaps, NULL); + return; + + status = ice_aq_get_phy_caps(pi, false, ICE_AQC_REPORT_TOPO_CAP_MEDIA, + &pcaps, NULL); if (status) { device_printf(dev, - "%s: ice_aq_get_phy_caps (%s) failed; status %s, aq_err %s\n", + "%s: ice_aq_get_phy_caps failed; status %s, aq_err %s\n", __func__, - report_mode == ICE_AQC_REPORT_DFLT_CFG ? "DFLT" : "w/MEDIA", ice_status_str(status), ice_aq_str(hw->adminq.sq_last_status)); return;