Patch from Erik Habbinga:
authorvlnb <vlnb@d57e44dd-8a1f-0410-8b47-8ef2f437770f>
Thu, 11 Jan 2007 12:39:10 +0000 (12:39 +0000)
committervlnb <vlnb@d57e44dd-8a1f-0410-8b47-8ef2f437770f>
Thu, 11 Jan 2007 12:39:10 +0000 (12:39 +0000)
commit6d534a225b9098572250f74d091171d7621eb265
tree91311ade913a44f03e54d8599ef686bec91a7514
parentde21d0df25d6157267641b7fcd2870245b7ea9ab
Patch from Erik Habbinga:

There are a few minor changes:

- fix some 80 char line length issues
- fix some indenting
- change scst_to_dma_dir to scst_to_tgt_dma_dir

The big issue is fixing the sending of sense data.  The LSI chip, when talking to a non-packetized SCSI initiator, cannot send both
status (i.e. check condition) and sense data (from autosense) in the same transaction.  The result is a 006B
(MPI_IOC_STATUS_TARGET_STS_DATA_NOT_SENT) IOCStatus value when this is attempted.  The sense data doesn't get transmitted over the
SCSI cable in this case.  My fix, which is modeled on LSI's own SCSI target implementation, is to cache sense data before attempting
to send it.  If a REQUEST SENSE command comes in with pending sense, the LSI driver will handle the REQUEST SENSE command on it's
own without involving SCST.  Pending sense is cleared once the REQUEST SENSE command is handled, or if any other command comes in.
Sense data is cached per initiator.  Apparantely this problem is only related to non-packetized SCSI interfaces.  That's all I have
to test with, so I can't vouch for SAS or FC.

git-svn-id: https://scst.svn.sourceforge.net/svnroot/scst/trunk@75 d57e44dd-8a1f-0410-8b47-8ef2f437770f
mpt/mpt_scst.c
mpt/mpt_scst.h