From nobody Wed Apr 30 17:21:56 2025 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 4ZnkWS4b8Jz5tj7L; Wed, 30 Apr 2025 17:21:56 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWS1gb3z3MQ2; Wed, 30 Apr 2025 17:21:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033716; 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=o57Ekg23dSewJAQSmFsACz4iRuUsvElwoYnDzijUg5s=; b=q9zWKYB3GiB3Gj8u5rNldwg3tXxr7q3hmwlWif4cYq+UMnMpkZEtRBz6QqR+kkMMxqaCuN N+tbU1BZrKciawMysJEGCr80yxJ9UMafUKBqbL4mu0kA0MOPcIem9BrGKmOYWHKTtiIyap pPPIqq5EoNoxIiHlOUcmUe7ALBcruaiFCun7uaGFd5NAB5qGN/khMUvH95iVawhpjcqNUl Yhh73x5c9fyU/QJAONaY0KZCIOTd7xEplmWb6IfhTsMtPvdPHoaYwVGZmzNE4ZY+FWCAF2 sJEGpNZAAMRK4mMsFqd8rycLl2Gdpr713sX8L52J1kQ7RkvVk9ymZh/TLYrD7A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033716; a=rsa-sha256; cv=none; b=ezl+wXWByWK4J80GG85bEbaBgp69GYEqUtqrol9NGnT42JiJO9rtLaTHipH70BDyCd0ixR aELzCICKbV6lEDl/j04FiQm+mhBlsHWTVLQBgsFGSX4043kCT7U5+Fq6YecPTlYnuG1X1v +qTCsSkT6L6BxLnHz5MlT/F9hsXrgQe34LghywjUnaKKhguSiMLvGHntllsQBfTrFx8Br2 gWk+Fm2fuBQAFXSouDtjUa+nIBNz+JF4u+cEur6tBh0+/svOwUQ7V6bHSN8S3uubtyKe8r F+KqjJTXiogkd+ulRjpDtPVfMKwBO/J19Zt+Orr4Fg/z7pdk/CzN3dYmvsfo5w== 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=1746033716; 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=o57Ekg23dSewJAQSmFsACz4iRuUsvElwoYnDzijUg5s=; b=TIplIi9Ct2giK6b/lskkvykj3wyOUc696EYiaQK37OMcpgg5KkZzkjCSMeXBDcHht2g7Jk uKJp96qhSrtigYzP6/vHs6klqfc9i6RJtWAx7a8cBc06Z4NCkh7m/PpPhoyQwTjsyk5VO1 3BxyHhYs7ledME/erY0Hqt21KG1bvIRMG8Wbvi/A64qOe2XC8FxX4PyIVFF7ewvetsdrV2 VKVWOPQqiRKmKBK/UsGyzRHjKyaBL9gn6y7BzJCPmNugX6sMrpuxT2H2zjOstnt2X/GUeH 572Dio21StA02t1hb4aCbvfAPe20VH6fF+dcO3DscAkPBVv25/sZ7+vmbYc+MA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZnkWS0ztsz1CmM; Wed, 30 Apr 2025 17:21:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLul2095430; Wed, 30 Apr 2025 17:21:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLuqQ095427; Wed, 30 Apr 2025 17:21:56 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:56 GMT Message-Id: <202504301721.53UHLuqQ095427@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: ec6fea480da5 - stable/14 - mpi3mr: Enable Diag Save for All Diagnostic Fault Cases 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ec6fea480da5570534a4d9e8af7af56de411df79 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=ec6fea480da5570534a4d9e8af7af56de411df79 commit ec6fea480da5570534a4d9e8af7af56de411df79 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:40:04 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:53 +0000 mpi3mr: Enable Diag Save for All Diagnostic Fault Cases This patch ensures the driver sets the Diag Save bit for all diagnostic fault conditions before issuing a Diagnostic Fault Reset. The firmware now incorporates logic to manage snapdump saving and requires the driver to always set the Diag Save bit to enable this feature. This change supports improved diagnostic data collection and fault handling. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49750 (cherry picked from commit b854677d970a11e87929fa95d0e4067f911faa62) --- sys/dev/mpi3mr/mpi3mr.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index 407947fa812b..5c4df9cef0b6 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -6214,6 +6214,9 @@ static int mpi3mr_issue_reset(struct mpi3mr_softc *sc, U16 reset_type, unlock_retry_count, host_diagnostic); } while (!(host_diagnostic & MPI3_SYSIF_HOST_DIAG_DIAG_WRITE_ENABLE)); + if (reset_type == MPI3_SYSIF_HOST_DIAG_RESET_ACTION_DIAG_FAULT) + mpi3mr_set_diagsave(sc); + scratch_pad0 = ((MPI3MR_RESET_REASON_OSTYPE_FREEBSD << MPI3MR_RESET_REASON_OSTYPE_SHIFT) | (sc->facts.ioc_num << @@ -6407,10 +6410,14 @@ out: mpi3mr_app_send_aen(sc); } } else { - mpi3mr_issue_reset(sc, - MPI3_SYSIF_HOST_DIAG_RESET_ACTION_DIAG_FAULT, reset_reason); + ioc_state = mpi3mr_get_iocstate(sc); + if (ioc_state != MRIOC_STATE_FAULT) + mpi3mr_issue_reset(sc, + MPI3_SYSIF_HOST_DIAG_RESET_ACTION_DIAG_FAULT, reset_reason); + sc->unrecoverable = 1; sc->reset_in_progress = 0; + sc->block_ioctls = 0; } mpi3mr_dprint(sc, MPI3MR_INFO, "Soft Reset: %s\n", ((retval == 0) ? "SUCCESS" : "FAILED"));