Hi, I'm playing with scsi_debug (a low-level driver) of lk2.4 and notice that scsi_debug_queuecommand(...) defined in scsi_debug returns sometimes before the SCSI command completes (i.e. before done(cmd) is invoked), and sometimes after done(cmd) is invoked. Can SCSI mid-layer really handle both cases without any problems, and why? I assume that before scsi_debug_queuecommand() returns the control to mid-layer, mid-layer has no way to know if that SCSI command has been successfully queued in low-level driver or not, therefore it's probably an error if the low-level driver invokes done() before completing scsi_debug_queuecommand(). Please correct me if I'm wrong. Has mid-layer already added the SCSI command in a queue somewhere inside the mid-layer before invoking queuecommand(...) (i.e. passing control to the low-level driver)? Thanks, T. __________________________________ Do you Yahoo!? New and Improved Yahoo! Mail - Send 10MB messages! http://promotions.yahoo.com/new_mail -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/