On Fri, 2017-02-03 at 14:40 -0800, Himanshu Madhani wrote:
> + /* Response code and sense key */
> + ((uint32_t *)ctio->u.status1.sense_data)[0] =
> + cpu_to_le32((0x70 << 24) | (sense_key << 8));
> + /* Additional sense length */
> + ((uint32_t *)ctio->u.status1.sense_data)[1] = cpu_to_le32(0x0a);
> + /* ASC and ASCQ */
> + ((uint32_t *)ctio->u.status1.sense_data)[3] =
> + cpu_to_le32((asc << 24) | (ascq << 16));
Please use put_unaligned_le32() instead of open-coding it.
> struct qla_tgt_cmd {
> @@ -885,11 +895,25 @@ struct qla_tgt_cmd {
> struct list_head cmd_list;
>
> struct atio_from_isp atio;
> - /* t10dif */
> +
> + /* T10-DIF */
> +#define DIF_ERR_NONE 0
> +#define DIF_ERR_GRD 1
> +#define DIF_ERR_REF 2
> +#define DIF_ERR_APP 3
> + int8_t dif_err_code;
> struct scatterlist *prot_sg;
> uint32_t prot_sg_cnt;
> - uint32_t blk_sz;
> + uint32_t blk_sz, num_blks;
> + uint8_t scsi_status, sense_key, asc, ascq;
> +
> struct crc_context *ctx;
> + uint32_t prot_op;
> + uint32_t prot_type;
> + uint8_t *cdb;
> + uint64_t lba;
> + uint16_t a_guard, e_guard, a_app_tag, e_app_tag;
> + uint32_t a_ref_tag, e_ref_tag;
>
> uint64_t jiffies_at_alloc;
> uint64_t jiffies_at_free;
There are already equivalents of prot_op, prot_type, cdb and lba in struct
se_cmd. I think a few weeks ago Christoph had asked you not to duplicate
se_cmd fields into struct qla_tgt_cmd?
Bart.