On 04/11/12 18:17, Mike Christie wrote: > I would like scsi core to handle this, but I think right now drivers are > doing work arounds like your patch. I've been wondering whether the following approach would make sense (haven't tested this yet): - Let scsi_remove_host() stop the SCSI error handler thread instead of keeping the error handler thread around until scsi_host_dev_release() gets invoked. - After blk_cleanup_queue() finished, kill all outstanding SCSI requests from inside scsi_remove_device() (those requests that have already been passed to the LLD via queuecommand) instead of waiting until the SCSI error handler detects a timeout. An advantage of that approach would be that independent of the context from which an I/O request is submitted (scanning / user space / ...) that no new requests would be passed to the SCSI LLD after scsi_remove_host() has finished. So this approach could be an alternative for Tomas' patch at the start of this thread. However, a disadvantage is that this approach will only work fine if the LLD stops I/O completion notifications before invoking scsi_remove_host(). Several LLDs seem to do that, but not ib_srp. But that's something Dave and I can take care of. Bart. -- 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