On 05/27/05 04:36, Jeff Garzik wrote:
Christoph Hellwig wrote:
No, hav ing the host_lock only held for ->queuecommand which doesn't need that locking doesn't make any sense. An API like the current one
It makes a lot of sense: LLDs are written with the assumption that paths called from ->queuecommand will not be interrupted by their own interrupt handler, whereas error handling paths are typically written with precisely the -opposite- assumption.
Removing spin_lock_irq() from queuecommand in SCSI EH causes problems, and solves nothing.
scsi_done() itself needs no explicit locking, it is completely reentrant and this is a good thing.
I'd like to see the same thing for queuecommand(), i.e. host_lock be gone.
We can take up that topic once I'm done with sleeping-in-EH project :)
I don't disagree... but changing the locking for ->queuecommand() is a -lot- more invasive, and requires much more care.
I'm also curious to see what others think about removing the host_lock acquisition from ->queuecommand() calls.
Jeff
- : 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