On Thu, 2017-02-16 at 11:52 +0900, Damien Le Moal wrote: > Thanks for the pointers. I checked libiscsi tests. And from what is done > there, it seems to me that it is basically impossible to distinguished > between a buggy hardware response and an in-purpose (or buggy) not > aligned data-out buffer size. > E.g. the test in test_write10_residuals.c which issues a 1 block write > with a buf size of 10000 and checks that residual is 10000 - block size. > For that case, with both this patch and the original mpt3sas patch, the > rounding up of resid to the block size will break the test. > > Yet, it is very surprising that LIO and SCST_SCSI issue the "buggy" > request as is without checking and eventually correcting things first. > So unless LIO and SCST_SCSI are fixed to do that on the request they > send to the device, both patches should be dropped. > Users with buggy mpt3 HBAs will need to update the HBA FW... > > So the conclusion may be that we need to drop everything ? The mpt3sas > patch breaks ZBC now, so that must be removed too. Hello Damien, For the example you cited (bufflen - residual) = block size. This is why I proposed to round (bufflen - residual) instead of residual. Whether bufflen or (bufflen - residual) is rounded doesn't matter if bufflen is a multiple of the logical block size. But it matters if bufflen is not a multiple of the logical block size. Bart.