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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to