From nobody Thu Oct 29 06:38:02 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 4jFZL318pfz6xtfQ for ; Thu, 29 Oct 2026 06:38:03 +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 4jFZL25y6Xz3F95 for ; Thu, 29 Oct 2026 06:38:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793255882; 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=UJATtegq23rgAKhV6U4a5ko9nv2SF+nmxklENS8cNI8=; b=wNE+Pb9H02gS7F3lZFuIZ5DU5Fzlahx6afTCbCWQoN8I0dTyrJgQol+ShoBXYYoUMHfgZt XdPa9znflw8lRrOXTnAyCNqv+EibG/weAMxZEHJitk5BYRlaG2W5LGbrNiWjJHFyrAYRfr 2tVs0PO53BqbPiwJnghR9Yfv/yvEHU2bJLMRWxueoqBV4tnjc3W4FFOdFB21uJbcyi3KqE 5yL0P4PLYTfqoJ33QDf4XPGOatDJma8i6lzzJRzNA5tUclCLqhefL7DHjDElfyJtQOf46X J3R0w85sfCFJEsZn45pvL1fULbOxpRWnZdwmGeHiBzON7Pmd8CiygpdB27aRZw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1793255882; b=scZsHZzmrAEJ5wMtmrbjs3lW2EAozg9h5JqlxOgSd/HIqFvbVRZmwNDRdLL/n9qEntDkKO 9aPZjjS9Y1n3yKtlc4tzBCX9xsxbo2PIku8HufaDZi5zPpD0Tkch4KFiHXHCRJvkP6OqtE zxiMSWgF0YXoCr2r1M4G7mB9zHQyJRaO7AjoIYtLm4Cga9bPiRVQMpFcmvVesoePgF9cgE LwmYV1e2vYM5FKDc0XHfZT8taV9MKOQ2Icpadsk5ca11VHuMv3q1HzB0ysAraRO4DFo7x7 grskBwWt3BYEJdjlaiBzvfyIkM7i5oTJJh4ZIYricPPsQmwP5XkwoDcGk/jDlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793255882; 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=UJATtegq23rgAKhV6U4a5ko9nv2SF+nmxklENS8cNI8=; b=O6Ybkst3KDurhG6+4CAPn2YcsTPMs+W97T7evhm6n8UeS0A/0PpikFNbo8i08NwcSLOtng ZZ0lh+zDtSnnYIFEMnhMB3uoEqWToazyPcLNQn867pHLDEWyRbXpSxAVAoCdzNAkCyGBwq /94G5B/SfyI0rbaG9qP8NJlCB04qGOyfnXchaG8s1ndn1wQY6LpZLE+5Y7Eh86KZ49e8G2 EL5COkTqNEnknnwyJk5SG8zcVNimXpA2MsbYxlpZG+bEZ5UKwuMz7nNyj5bQupG9Wg/yGF 9lsulPpixcpMJR6k7wbUaSf6xpf/Tg86ofDIsvmB+9K4jHTO1jEAHn8rKh7UGQ== 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 4jFZL24vbyzS0T for ; Thu, 29 Oct 2026 06:38:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3e340 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 29 Oct 2026 06:38:02 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: f63e6c42af26 - stable/15 - axgbe: Propagate hardware and PHY initialization failures 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: f63e6c42af2628ff61b9aa5a9c81643efacab011 Auto-Submitted: auto-generated Date: Thu, 29 Oct 2026 06:38:02 +0000 Message-Id: <6ae2e9ca.3e340.60daceb1@gitrepo.freebsd.org> The branch stable/15 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=f63e6c42af2628ff61b9aa5a9c81643efacab011 commit f63e6c42af2628ff61b9aa5a9c81643efacab011 Author: Kevin Bowling AuthorDate: 2026-09-07 11:00:55 +0000 Commit: Kevin Bowling CommitDate: 2026-10-29 06:37:54 +0000 axgbe: Propagate hardware and PHY initialization failures Check hardware initialization instead of discarding its result, and preserve the original initialization error across cleanup. Report a failed init to iflib rather than publishing a running datapath. Return normalized FreeBSD errors from attach_post. Reuse the existing native reset cleanup on failure. Sponsored by: BBOX.io (cherry picked from commit b263545980f44c0318afcc26188046ad7e559ceb) --- sys/dev/axgbe/if_axgbe_pci.c | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/sys/dev/axgbe/if_axgbe_pci.c b/sys/dev/axgbe/if_axgbe_pci.c index 0153247495e3..7cf74b49e339 100644 --- a/sys/dev/axgbe/if_axgbe_pci.c +++ b/sys/dev/axgbe/if_axgbe_pci.c @@ -93,7 +93,7 @@ static int axgbe_if_msix_intr_assign(if_ctx_t, int); static void xgbe_free_intr(struct xgbe_prv_data *, struct resource *, void *, int); /* Init and Iflib routines */ -static void axgbe_pci_init(struct xgbe_prv_data *); +static int axgbe_pci_init(struct xgbe_prv_data *); static void axgbe_pci_stop(if_ctx_t); static void xgbe_disable_rx_tx_int(struct xgbe_prv_data *, struct xgbe_channel *); static void xgbe_disable_rx_tx_ints(struct xgbe_prv_data *); @@ -1500,9 +1500,8 @@ axgbe_if_attach_post(if_ctx_t ctx) scctx->isc_max_frame_size = if_getmtu(ifp) + 18; scctx->isc_min_frame_size = XGMAC_MIN_PACKET; - axgbe_pci_init(pdata); - - return (0); + ret = axgbe_pci_init(pdata); + return (ret < 0 ? -ret : ret); } /* axgbe_if_attach_post */ static void @@ -1595,27 +1594,28 @@ axgbe_if_detach(if_ctx_t ctx) return (0); } /* axgbe_if_detach */ -static void +static int axgbe_pci_init(struct xgbe_prv_data *pdata) { struct xgbe_phy_if *phy_if = &pdata->phy_if; struct xgbe_hw_if *hw_if = &pdata->hw_if; - int ret = 0; + int ret, reset_ret; if (!__predict_false((test_bit(XGBE_DOWN, &pdata->dev_state)))) { axgbe_printf(1, "%s: Starting when XGBE_UP\n", __func__); - return; + return (0); } - hw_if->init(pdata); + ret = hw_if->init(pdata); + if (ret != 0) { + axgbe_error("%s: hardware init error %d\n", __func__, ret); + goto fail; + } - ret = phy_if->phy_start(pdata); - if (ret) { - axgbe_error("%s: phy start %d\n", __func__, ret); - ret = hw_if->exit(pdata); - if (ret) - axgbe_error("%s: exit error %d\n", __func__, ret); - return; + ret = phy_if->phy_start(pdata); + if (ret != 0) { + axgbe_error("%s: phy start error %d\n", __func__, ret); + goto fail; } hw_if->enable_tx(pdata); @@ -1631,6 +1631,13 @@ axgbe_pci_init(struct xgbe_prv_data *pdata) xgbe_dump_mtl_registers(pdata); xgbe_dump_mac_registers(pdata); xgbe_dump_rmon_counters(pdata); + return (0); + +fail: + reset_ret = hw_if->exit(pdata); + if (reset_ret != 0) + axgbe_error("%s: cleanup reset error %d\n", __func__, reset_ret); + return (ret); } static void @@ -1639,7 +1646,8 @@ axgbe_if_init(if_ctx_t ctx) struct axgbe_if_softc *sc = iflib_get_softc(ctx); struct xgbe_prv_data *pdata = &sc->pdata; - axgbe_pci_init(pdata); + if (axgbe_pci_init(pdata) != 0) + iflib_init_failed(ctx); } static void