From nobody Sat Sep 12 01:44:27 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 4hhZ2z3Bsnz6rj5v for ; Sat, 12 Sep 2026 01:44:27 +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 4hhZ2z20cFz3LWG for ; Sat, 12 Sep 2026 01:44:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789177467; 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=EXZBmWJ/8RARDnA2DjOb6tpie87xn/96MxWruEEdmuA=; b=QqnbxUuOChsdKYGAAyyJmEcvVQn1hJ2TFxBhYuvZnvjR+T/b3JaReoxpxElaVQex8QXSzE RN7ig0XZ/OiDl8753C64h4yY15It0gNVY/bTCAOuigagZRoJ+vcniWSv0oIk3gz5v2OWws ytc97DUzUxlv2NDDcZH9ySrI47hhYOc/Xi2kPmXu7lMicASvW+BN+MDrT22hYts5DRyiR2 JF6N2aSW5jASqHMpEiGdG0GQ8QDZQgUl/TjVT6GNWjJWyLjEV8M70v2l852jF4kWyKxnBL SoR5Kycm88pvYx9aBvi6FtaxUt6tUkdK6PVPLmhw8TVBAXJ8gHJ99mbtIcgGog== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1789177467; b=SsZAMTbfd1+RX22pCq7oUWzd2/G6DVlOdBV6h2mkuPPvv0eBcVnyLZns6P643g1tD3PwSs ZdmvK8Z5UZqYf6m7KYDFjTuIxA02NCaGdP2nVmQbVi1dqXJblNu2ZCwHiF2dvBAINytP6E +HNuzqBRr8wikYxyvukSpnFccswIWBikC2q0GOxNdhsRzdbWntZ01JuHR0V7cBTpLBQNH9 JjNeYiPAk3FDskF5wEm/YHgBw+GtE2ZzlPFXCkMjQwjwPtu3mkTlj45eqgZAonHnwaVyeS wnr1p5b993yqx0TT/+SIz4zEwH6Fq98cilrhAbZ6KJ/gZgp0z5+f/TbNvIioeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789177467; 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=EXZBmWJ/8RARDnA2DjOb6tpie87xn/96MxWruEEdmuA=; b=SUMxlqTvWF5WSqTNq5VZiQAVp3TPRQwgbDtHT0VUEedvE9THo/J1njXOae553D0LlG5fv2 qFalnhU69vx9oX4d7VqMGP/jDFl42Exz4GrEcYztcZ85DH9l6T+9erCvhYyha4N6ZX9zqQ M8mwLI3p5piY1jgdhc/5Yz7aFHpsl/PqKZWJ4Eh2rE94HuBtbjMkuhZ1G2E6HxSEIfKHnI 4cBIJ5bqC1iXQcNR0c02Hw1gbZ8ilIWAQMl+L9JSg85A3cl0tM3dZSWCJKWRhS7xaSkycG 6AsRLrsB8mkEVfzgTeTk1Pwlfyf+V+XglaX4uZxmpGUsXJ8HA36IiJy2Lr4Mzw== 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 4hhZ2z13vgzgBZ for ; Sat, 12 Sep 2026 01:44:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21012 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 12 Sep 2026 01:44:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 3d961305e170 - stable/15 - e1000: Report corrected LAN management FIFO ECC errors List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 3d961305e17026b4257285d66160428669130b8a Auto-Submitted: auto-generated Date: Sat, 12 Sep 2026 01:44:27 +0000 Message-Id: <6aa4ae7b.21012.79901b5d@gitrepo.freebsd.org> The branch stable/15 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=3d961305e17026b4257285d66160428669130b8a commit 3d961305e17026b4257285d66160428669130b8a Author: Kevin Bowling AuthorDate: 2026-08-28 12:58:37 +0000 Commit: Kevin Bowling CommitDate: 2026-09-12 01:43:27 +0000 e1000: Report corrected LAN management FIFO ECC errors I350 and I354 report a corrected ECC error in the LAN transmit management FIFO through LANPERRSTS bit 16. Unlike the parity status in the same register, this condition neither interrupts nor stops traffic. Poll the latch with the other corrected error status, increment a dedicated counter, and clear only its RW1C bit. Expose it as dev.igb.N.memory_errors.corrected_lan_mng_fifo. Fatal error handling returns before the periodic statistics sweep and may reset the device. Drain all I350 and I354 corrected-error status in the admin task before recovery so the reset does not discard pending indications. This follows section 6.21.16 of the Intel Atom Processor C2000 Product Family Integrated GbE Controller Programmer's Reference Manual, document 537426 revision 1.5. Sponsored by: BBOX.io (cherry picked from commit 2f095faebb195735879d9caad164ce807d85ddf7) --- sys/dev/e1000/e1000_defines.h | 1 + sys/dev/e1000/if_em.c | 14 +++++++++++++- sys/dev/e1000/if_em.h | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/sys/dev/e1000/e1000_defines.h b/sys/dev/e1000/e1000_defines.h index 21f54e15b9a7..18b311138032 100644 --- a/sys/dev/e1000/e1000_defines.h +++ b/sys/dev/e1000/e1000_defines.h @@ -591,6 +591,7 @@ #define E1000_PBECCSTS_I350_I354_CORR_MASK 0x14000000 #define E1000_LANPERRSTS_RETX_BUF 0x00000200 +#define E1000_LANPERRSTS_MNG_FIFO_CORR 0x00010000 #define E1000_LANPERRSTS_I350_I354_NO_RESET_MASK 0x00008400 #define E1000_LANPERRSTS_I350_I354_RESET_MASK 0x00007BFE #define E1000_LANPERRSTS_I350_I354_FATAL_MASK 0x0000FFFE diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index 014f8d6e8de6..10dfd7d9a05a 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -2326,6 +2326,12 @@ em_update_i350_i354_ecc_stats(struct e1000_softc *sc) sc->corrected_error_dma_count += bitcount32(status); E1000_WRITE_REG(hw, E1000_DDECCS, status); } + status = E1000_READ_REG(hw, E1000_LANPERRSTS) & + E1000_LANPERRSTS_MNG_FIFO_CORR; + if (status != 0) { + sc->corrected_error_lan_mng_fifo_count++; + E1000_WRITE_REG(hw, E1000_LANPERRSTS, status); + } pbeccsts = E1000_READ_REG(hw, E1000_RPBECCSTS); status = pbeccsts & E1000_PBECCSTS_I350_I354_CORR_MASK; @@ -2511,7 +2517,8 @@ em_handle_fatal_error_admin(struct e1000_softc *sc) E1000_READ_REG(&sc->hw, E1000_RPBECCSTS), E1000_READ_REG(&sc->hw, E1000_TPBECCSTS), pcieecc); - } + } else if (em_has_i350_i354_memory_errors(&sc->hw)) + em_update_i350_i354_ecc_stats(sc); if (peind & E1000_PEIND_LANPORT_PARITY_FATAL) sc->fatal_error_lan_count++; if (peind & E1000_PEIND_MNG_PARITY_FATAL) @@ -6518,6 +6525,11 @@ em_add_hw_stats(struct e1000_softc *sc) "corrected_packet_buffer", CTLFLAG_RD, &sc->corrected_error_packet_buffer_count, "Corrected packet-buffer memory indications"); + SYSCTL_ADD_UQUAD(ctx, memerr_list, OID_AUTO, + "corrected_lan_mng_fifo", CTLFLAG_RD, + &sc->corrected_error_lan_mng_fifo_count, + "Corrected LAN management transmit-FIFO ECC " + "indications"); SYSCTL_ADD_UQUAD(ctx, memerr_list, OID_AUTO, "corrected_pcie_tx_data", CTLFLAG_RD, &sc->corrected_error_pcie_tx_data_count, diff --git a/sys/dev/e1000/if_em.h b/sys/dev/e1000/if_em.h index adc8132967ad..ee1cd0dea211 100644 --- a/sys/dev/e1000/if_em.h +++ b/sys/dev/e1000/if_em.h @@ -641,6 +641,7 @@ struct e1000_softc { u64 corrected_error_pcie_retry_count; u64 corrected_error_pcie_other_count; u64 corrected_error_packet_buffer_count; + u64 corrected_error_lan_mng_fifo_count; u64 uncorrected_error_packet_buffer_count; u64 uncorrected_error_dma_count; u64 uncorrected_error_pcie_count;