On 08/06/2017 08:34, Christoph Hellwig wrote:
Hi John,
sorry for dropping the ball, but your repost reminded me.
On Thu, Jun 01, 2017 at 11:36:55AM +0100, John Garry wrote:
In the command completion code we need to check for abnormal completion due
to underflow, but ignore it when it occurs in some commands, like inquiry.
This is why we check for rw command - it is equivalent to !inquiry.
I'll see if we can change the check to explicitly ignore certain commands
which complete abnormally with underflow.
In general it should be up to the higher level and not the driver
to detect underflow, and that's how most (hopefully all, but I won't
bet on some older ones) of our drivers operate.
Hi Christoph,
Right, I see most LLDDs will not check for underflow; but, FWIW, I do
see scsi_cmnd.underflow referenced in some...
However, for drivers using libsas, we detect underflow for the reason
just so libsas knows the sas_task status (SAS_DATA_UNDERRUN) and sets
the scsi cmd result properly (and also the residual) in sas_end_task().
We used this method for the predecessor hw driver, and I think that we
can revert to it.
Much appreciated,
John
What about 32-byte CDs or things like Write Same?
You're talking about VARIABLE_LENGTH_CMD (opcode 0x7f) for 32-byte CDs,
right?
Yes.
.