On 06/27/2014 09:58 AM, Christoph Hellwig wrote:
@@ -771,7 +770,7 @@ static int scsi_try_host_reset(struct scsi_cmnd *scmd)
if (!hostt->skip_settle_delay)
ssleep(HOST_RESET_SETTLE_TIME);
spin_lock_irqsave(host->host_lock, flags);
- scsi_report_bus_reset(host, scmd_channel(scmd));
+ scsi_report_bus_reset(host, -1);
The old code report a bus reset for every device on the channel this
command was on, and the new one will not report anything because
scsi_report_bus_reset doesn't treat -1 as a wild card. To keep the old
behaviour you'll have to pass a channel argument here. It's not quite
clear to me if ->eh_host_reset_handler is only supposed to reset a
"channel" or the whole HBA, but if we want to change behavior here
it should be a separate well documented patch.
I think Hannes' change down below in his same patch introduces a channel
of -1 as wild card for the host reset which affects all rports of the
host, so I assume this would work as before?:
@@ -2245,7 +2233,7 @@ void scsi_report_bus_reset(struct Scsi_Host *shost, int channel)
struct scsi_device *sdev;
__shost_for_each_device(sdev, shost) {
- if (channel == sdev_channel(sdev))
+ if (channel == -1 || channel == sdev_channel(sdev))
__scsi_report_device_reset(sdev, NULL);
}
}
--
Mit freundlichen Grüßen / Kind regards
Steffen Maier
Linux on System z Development
IBM Deutschland Research & Development GmbH
Vorsitzende des Aufsichtsrats: Martina Koederitz
Geschaeftsfuehrung: Dirk Wittkopp
Sitz der Gesellschaft: Boeblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html