Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Apr 2022 17:46:14 GMT
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: c872d65b55aa - releng/13.1 - mrsas: if controller reset is in progress, refrain from firing DCMDs to firmware in shutdown
Message-ID:  <202204061746.236HkEKC022836@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch releng/13.1 has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=c872d65b55aa3bf6c030276eb0c7933015b20801

commit c872d65b55aa3bf6c030276eb0c7933015b20801
Author:     Chandrakanth Patil <chandrakanth.patil@broadcom.com>
AuthorDate: 2022-01-21 09:24:37 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2022-04-06 17:46:00 +0000

    mrsas: if controller reset is in progress, refrain from firing DCMDs to
    firmware in shutdown
    
    If controller reset is in progress, at same time if system shutdown is
    issued then corresponding shutdown function in driver will be invoked
    where driver is waiting 15 seconds to complete the controller reset.
    
    If the reset is not complteted within that time frame driver will go
    ahead and fire cache flush and shutdown DCMDs which will end up
    accessing the the queues which are not initialized due to undergoing
    reset leads to FMU error in firmware.
    
    Fix:
    In shutdown function, if controller reset is not finished within 15
    seconds than driver will return to the OS without firing any DCMDs.
    
    Approved by: re@ (gjb)
    Reviewed by: imp
    PR: 261375
    
    (cherry picked from commit 79c4c4be9618470711480f46ef2cd3a15c00cdd2)
    (cherry picked from commit 09e161a29ee5b0e52494c861f451de35b286e327)
---
 sys/dev/mrsas/mrsas.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys/dev/mrsas/mrsas.c b/sys/dev/mrsas/mrsas.c
index 8814642fccd0..0055ddda8ce9 100644
--- a/sys/dev/mrsas/mrsas.c
+++ b/sys/dev/mrsas/mrsas.c
@@ -1198,6 +1198,7 @@ mrsas_shutdown(device_t dev)
 		if (sc->reset_in_progress) {
 			mrsas_dprint(sc, MRSAS_INFO,
 			    "gave up waiting for OCR to be finished\n");
+			return (0);
 		}
 	}
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202204061746.236HkEKC022836>