On 10/29/19 1:17 AM, Damien Le Moal wrote:
So I think changing the interface to unsigned int makes sense in that
context. Also, unless I am reading this wrong, the above definition you
quote always lead to resid >= 0, so I do not see what problem you are
worried about. Could you elaborate your concerns please ?
Hi Damien,
SCSI LLDs handle residual overflow in at least two different ways. I
think the iSCSI initiator handles this by reporting the DID_BAD_TARGET
error code. In the tcm_loop driver I found the following, which I think
is incorrect:
set_host_byte(sc, DID_OK);
if ((se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) ||
(se_cmd->se_cmd_flags & SCF_UNDERFLOW_BIT))
scsi_set_resid(sc, se_cmd->residual_count);
Seeing this made me wonder what the best approach is for a SCSI LLD to
report a residual overflow?
Thanks,
Bart.