[PATCH 1/3] ibmvscsi: Wire up host_reset() in the drivers scsi_host_template
Tyrel Datwyler
tyreld at linux.ibm.com
Thu May 2 10:47:27 AEST 2019
From: Tyrel Datwyler <tyreld at linux.vnet.ibm.com>
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 at linux.ibm.com>
---
drivers/scsi/ibmvscsi/ibmvscsi.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
index 8cec5230fe31..1c37244f16a0 100644
--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
@@ -2050,6 +2050,18 @@ 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);
+
+ vio_disable_interrupts(to_vio_dev(hostdata->dev));
+ dev_info(hostdata->dev, "Initiating adapter reset!\n");
+ ibmvscsi_reset_host(hostdata);
+ vio_enable_interrupts(to_vio_dev(hostdata->dev));
+
+ return 0;
+}
+
static struct device_attribute *ibmvscsi_attrs[] = {
&ibmvscsi_host_vhost_loc,
&ibmvscsi_host_vhost_name,
@@ -2076,6 +2088,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,
--
2.18.1
More information about the Linuxppc-dev
mailing list