git: 79c4c4be9618 - main - mrsas: if controller reset is in progress, refrain from firing DCMDs to firmware in shutdown
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 05 Apr 2022 14:38:24 UTC
The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=79c4c4be9618470711480f46ef2cd3a15c00cdd2 commit 79c4c4be9618470711480f46ef2cd3a15c00cdd2 Author: Chandrakanth Patil <chandrakanth.patil@broadcom.com> AuthorDate: 2022-01-21 09:24:37 +0000 Commit: Warner Losh <imp@FreeBSD.org> CommitDate: 2022-04-05 14:38:15 +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. Reviewed by: imp PR: 261375 --- 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 595dc3e340ae..b271ce6264b4 100644 --- a/sys/dev/mrsas/mrsas.c +++ b/sys/dev/mrsas/mrsas.c @@ -1166,6 +1166,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); } }