OSDN Git Service

scsi: libsas: Add flag SAS_HA_RESUMING
authorXiang Chen <chenxiang66@hisilicon.com>
Mon, 20 Dec 2021 11:21:33 +0000 (19:21 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 23 Dec 2021 04:38:30 +0000 (23:38 -0500)
Add a flag SAS_HA_RESUMING and use it to indicate the state of resuming the
host controller.

Link: https://lore.kernel.org/r/1639999298-244569-11-git-send-email-chenxiang66@hisilicon.com
Reviewed-by: John Garry <john.garry@huawei.com>
Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/libsas/sas_init.c
include/scsi/libsas.h

index 974c4a3..069e40f 100644 (file)
@@ -362,6 +362,7 @@ void sas_prep_resume_ha(struct sas_ha_struct *ha)
        int i;
 
        set_bit(SAS_HA_REGISTERED, &ha->state);
+       set_bit(SAS_HA_RESUMING, &ha->state);
 
        /* clear out any stale link events/data from the suspension path */
        for (i = 0; i < ha->num_phys; i++) {
@@ -443,6 +444,7 @@ static void _sas_resume_ha(struct sas_ha_struct *ha, bool drain)
        scsi_unblock_requests(ha->core.shost);
        if (drain)
                sas_drain_work(ha);
+       clear_bit(SAS_HA_RESUMING, &ha->state);
 
        /* send event PORTE_BROADCAST_RCVD to identify some new inserted
         * disks for expander
index a795a2d..698f203 100644 (file)
@@ -356,6 +356,7 @@ enum sas_ha_state {
        SAS_HA_DRAINING,
        SAS_HA_ATA_EH_ACTIVE,
        SAS_HA_FROZEN,
+       SAS_HA_RESUMING,
 };
 
 struct sas_ha_struct {