On 05/02/2019 02:50 PM, Brian King wrote: > On 5/1/19 7:47 PM, Tyrel Datwyler wrote: >> From: Tyrel Datwyler <tyreld@xxxxxxxxxxxxxxxxxx> >> >> 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@xxxxxxxxxxxxx> >> --- >> 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)); > > Is it necessary to disable / enable interrupts around the call to ibmvscsi_reset_host? > I don't know why we'd need to do that before calling the reset as we have other > cases, like ibmvscsi_timeout where we don't bother doing this. Also, at the end > of the reset we look to be already enabling interrupts. Yeah, I think you are right. My initial line of thought was that we have interrupts disabled in handle_crq when we do a reset, but yeah we clearly call it in the case of a timeout with them enabled. -Tyrel > > Thanks, > > Brian >