On 6/2/2014 7:54 PM, Martin K. Petersen wrote:
"Sagi" == Sagi Grimberg <sagig@xxxxxxxxxxxx> writes:
Sagi,
Sagi> In various areas of the code, it is assumed that
Sagi> se_cmd-> data_length describes pure data. In case
Sagi> that protection information exists over the wire (protect bits is
Sagi> are on) the target core decrease the protection length from the
Sagi> data length (instead of each transport peeking in the cdb).
I completely agree with the notion of including PI in the transport byte
count.
Why do you open code the transfer length adjustment below?
Can't say I have a good reason for that.
I'll move this logic to scsi_cmnd.h.
+ /**
+ * Adjust data_length to include
+ * protection information
+ **/
+ switch (sc->device->sector_size) {
+ case 512:
+ data_len += (data_len >> 9) * 8;
+ break;
+ case 1024:
+ data_len += (data_len >> 10) * 8;
+ break;
+ case 2048:
+ data_len += (data_len >> 11) * 8;
+ break;
+ case 4096:
+ data_len += (data_len >> 12) * 8;
+ break;
+ default:
+ data_len +=
+ (data_len >> ilog2(sc->device->sector_size)) * 8;
+ }
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html