Re: [PATCH v3 14/23] scsi: hisi_sas: add v3 cq interrupt handler

From: John Garry
Date: Thu Jun 08 2017 - 08:11:12 EST


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.

.