/**
* _scsih_ublock_io_all_device - unblock every device
* @ioc: per adapter object
+ * @no_turs: flag to disable TEST UNIT READY checks during device unblocking
*
* change the device state from block to running
*/
static void
-_scsih_ublock_io_all_device(struct MPT3SAS_ADAPTER *ioc)
+_scsih_ublock_io_all_device(struct MPT3SAS_ADAPTER *ioc, u8 no_turs)
{
struct MPT3SAS_DEVICE *sas_device_priv_data;
struct scsi_device *sdev;
if (!sas_device_priv_data->block)
continue;
+ if (no_turs) {
+ sdev_printk(KERN_WARNING, sdev, "device_unblocked handle(0x%04x)\n",
+ sas_device_priv_data->sas_target->handle);
+ _scsih_internal_device_unblock(sdev, sas_device_priv_data);
+ continue;
+ }
+
dewtprintk(ioc, sdev_printk(KERN_INFO, sdev,
"device_running, handle(0x%04x)\n",
sas_device_priv_data->sas_target->handle));
ioc->broadcast_aen_busy = 0;
if (!ioc->shost_recovery)
- _scsih_ublock_io_all_device(ioc);
+ _scsih_ublock_io_all_device(ioc, 1);
mutex_unlock(&ioc->tm_cmds.mutex);
}
ioc_info(ioc, "removing unresponding devices: complete\n");
/* unblock devices */
- _scsih_ublock_io_all_device(ioc);
+ _scsih_ublock_io_all_device(ioc, 0);
}
static void