[SCSI] mpt2sas: Change in MPI2_RAID_ACTION_SYSTEM_SHUTDOWN_INITIATED notification...
authorSreekanth Reddy <Sreekanth.Reddy@lsi.com>
Thu, 25 Jul 2013 05:55:57 +0000 (11:25 +0530)
committerJames Bottomley <JBottomley@Parallels.com>
Tue, 3 Sep 2013 14:27:50 +0000 (07:27 -0700)
The intent of this patch is to perform a graceful shutdown of target drives even if
volume doesn't exits. Changes done in this patch

1. Removed the check for the presence of volumes before sending down
   MPI2_RAID_ACTION_SYSTEM_SHUTDOWN_INITIATED. Therefore, this RAID action
   would be sent if the card is IR Firmware.

2. The MPI2_RAID_ACTION_SYSTEM_SHUTDOWN_INITIATED is sent even when the
   system undergoes suspend (in addition to remove/shutdown which was already
   present)

Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@lsi.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/mpt2sas/mpt2sas_scsih.c

index 2dbd226..ba12b55 100644 (file)
@@ -7710,10 +7710,6 @@ _scsih_ir_shutdown(struct MPT2SAS_ADAPTER *ioc)
        if (!ioc->ir_firmware)
                return;
 
-       /* are there any volumes ? */
-       if (list_empty(&ioc->raid_device_list))
-               return;
-
        mutex_lock(&ioc->scsih_cmds.mutex);
 
        if (ioc->scsih_cmds.status != MPT2_CMD_NOT_USED) {
@@ -8280,6 +8276,7 @@ _scsih_suspend(struct pci_dev *pdev, pm_message_t state)
 
        mpt2sas_base_stop_watchdog(ioc);
        scsi_block_requests(shost);
+       _scsih_ir_shutdown(ioc);
        device_state = pci_choose_state(pdev, state);
        printk(MPT2SAS_INFO_FMT "pdev=0x%p, slot=%s, entering "
            "operating state [D%d]\n", ioc->name, pdev,