Jeff Garzik wrote: > Brian King wrote: >> + spin_lock_irqsave(hostdata->host->host_lock, flags); >> + list_for_each_entry_safe(tmp_evt, pos, &hostdata->sent, list) { >> + list_del(&tmp_evt->list); >> + del_timer(&tmp_evt->timer); >> + if (tmp_evt->cmnd) { >> + tmp_evt->cmnd->result = (error_code << 16); >> + unmap_cmd_data(&tmp_evt->iu.srp.cmd, >> + tmp_evt, >> + tmp_evt->hostdata->dev); >> + if (tmp_evt->cmnd_done) >> + tmp_evt->cmnd_done(tmp_evt->cmnd); >> + } else if (tmp_evt->done) >> + tmp_evt->done(tmp_evt); >> + free_event_struct(&tmp_evt->hostdata->pool, tmp_evt); >> + } >> + spin_unlock_irqrestore(hostdata->host->host_lock, flags); > > > Since it's been so long since I bothered with the old-style error > handling, a dumb question: > > Are you sure that you should be completing the commands in the host > reset handler? I thought EH took care of that, and your sole task in > the host reset handler was to reset everything attached to a single > scsi_host. As far as scsi core is concerned, it really doesn't care either way. The first thing scsi_done does is call scsi_delete_timer, which will find that the timer has already expired/been deleted, which will cause scsi_done to essentially do nothing. Brian -- Brian King Linux on Power Virtualization IBM Linux Technology Center - 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