Patch "scsi: megaraid_sas: unload flag should be set after scsi_remove_host is called" has been added to the 4.15-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
scsi: megaraid_sas: unload flag should be set after scsi_remove_host is called
to the 4.15-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
scsi-megaraid_sas-unload-flag-should-be-set-after-scsi_remove_host-is-called.patch
and it can be found in the queue-4.15 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Mon Apr 9 10:16:32 CEST 2018
From: Shivasharan S <[email protected]>
Date: Fri, 5 Jan 2018 05:27:41 -0800
Subject: scsi: megaraid_sas: unload flag should be set after scsi_remove_host is called
From: Shivasharan S <[email protected]>
[ Upstream commit f3f7920b3910171b2999c7dc2335eb9f583e44f2 ]
Issue - Driver returns DID_NO_CONNECT when unload is in progress, indicated using instance->unload flag. In case of dynamic unload of driver, this flag is set before calling scsi_remove_host(). While doing manual driver unload, user will see lots of prints for Sync Cache command with DID_NO_CONNECT status.
Fix - Set the instance->unload flag after scsi_remove_host(). Allow device removal process to be completed and do not block any command before that. SCSI commands (like SYNC_CACHE) are received (as part of scsi_remove_host) by driver during unload will be submitted further down to the drives.
--- drivers/scsi/megaraid/megaraid_sas_base.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/scsi/megaraid/megaraid_sas_base.c +1 -1
@@ -6822,7 +6822,6 @@ static void megasas_detach_one(struct pcu32 pd_seq_map_sz; instance =pci_get_drvdata (pdev); - instance->unload =1 ; host = instance->host; fusion = instance->ctrl_context;
@@ -6833,6 +6832,7 @@ static void megasas_detach_one(struct pcif (instance->fw_crash_state !=UNAVAILABLE )megasas_free_host_crash_buffer (instance);scsi_remove_host (instance->host); + instance->unload =1 ;if (megasas_wait_for_adapter_operational (instance)) goto skip_firing_dcmds;
Patches currently in stable-queue which might be from [email protected] are
queue-4.15/scsi-megaraid_sas-error-handling-for-invalid-ldcount-provided-by-firmware-in-raid-map.patch queue-4.15/scsi-megaraid_sas-unload-flag-should-be-set-after-scsi_remove_host-is-called.patch