On Wed, 2010-11-24 at 11:46 +0100, Hannes Reinecke wrote: > >> - when a read is aborted due to a mark/EOF/EOD/EOM, the len > reported to > >> controller can be 0. LSI controller emulation doesn't know how to > manage > >> this. A workaround found is to call the completion routine with > >> SCSI_REASON_DONE just after calling it with SCSI_REASON_DATA with > len=0. > > > > Are you sure that it's not needed any more? > > > Don't ask me. I didn't do the patch, and my knowledge of lsi HBA > internals is scanty. > Nic, can you comment here?
Well, writing an HBA myself, it took me a while to figure out what I'm supposed to expect from the layer :-) So far tho, it appears that I can (at least with scsi-disk) rely on always been eventually called with SCSI_REASON_DONE so my code (and maybe the usb-msd code too, I haven't verified) relies on that to complete requests... Is that incorrect ? Cheers, Ben.