scsi: ibmvscsi: Wire up host_reset() in the driver's scsi_host_template
authorTyrel Datwyler <tyreld@linux.vnet.ibm.com>
Fri, 3 May 2019 00:50:56 +0000 (19:50 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 18 Jun 2019 23:46:22 +0000 (19:46 -0400)
Wire up the host_reset function in our driver_template to allow a user
requested adpater reset via the host_reset sysfs attribute.

Example:

echo "adapter" > /sys/class/scsi_host/host0/host_reset

Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ibmvscsi/ibmvscsi.c

index 8cec523..65fc8ca 100644 (file)
@@ -2050,6 +2050,16 @@ static struct device_attribute ibmvscsi_host_config = {
        .show = show_host_config,
 };
 
+static int ibmvscsi_host_reset(struct Scsi_Host *shost, int reset_type)
+{
+       struct ibmvscsi_host_data *hostdata = shost_priv(shost);
+
+       dev_info(hostdata->dev, "Initiating adapter reset!\n");
+       ibmvscsi_reset_host(hostdata);
+
+       return 0;
+}
+
 static struct device_attribute *ibmvscsi_attrs[] = {
        &ibmvscsi_host_vhost_loc,
        &ibmvscsi_host_vhost_name,
@@ -2076,6 +2086,7 @@ static struct scsi_host_template driver_template = {
        .eh_host_reset_handler = ibmvscsi_eh_host_reset_handler,
        .slave_configure = ibmvscsi_slave_configure,
        .change_queue_depth = ibmvscsi_change_queue_depth,
+       .host_reset = ibmvscsi_host_reset,
        .cmd_per_lun = IBMVSCSI_CMDS_PER_LUN_DEFAULT,
        .can_queue = IBMVSCSI_MAX_REQUESTS_DEFAULT,
        .this_id = -1,