OSDN Git Service

scsi: megaraid_sas: Do not kill host bus adapter, if adapter is already dead
authorAnand Lodnoor <anand.lodnoor@broadcom.com>
Tue, 14 Jan 2020 11:21:15 +0000 (16:51 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 16 Jan 2020 04:21:02 +0000 (23:21 -0500)
Link: https://lore.kernel.org/r/1579000882-20246-5-git-send-email-anand.lodnoor@broadcom.com
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
Signed-off-by: Anand Lodnoor <anand.lodnoor@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/megaraid/megaraid_sas_base.c

index 167a3e5..2d74c16 100644 (file)
@@ -2154,6 +2154,12 @@ static void megasas_complete_outstanding_ioctls(struct megasas_instance *instanc
 
 void megaraid_sas_kill_hba(struct megasas_instance *instance)
 {
+       if (atomic_read(&instance->adprecovery) == MEGASAS_HW_CRITICAL_ERROR) {
+               dev_warn(&instance->pdev->dev,
+                        "Adapter already dead, skipping kill HBA\n");
+               return;
+       }
+
        /* Set critical error to block I/O & ioctls in case caller didn't */
        atomic_set(&instance->adprecovery, MEGASAS_HW_CRITICAL_ERROR);
        /* Wait 1 second to ensure IO or ioctls in build have posted */