Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

nvmet-fc: fix byte swapping in nvmet_fc_ls_create_association

We always need to do non-equal comparisms on the native endian versions
to get the correct result.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Christoph Hellwig and committed by
Jens Axboe
7722ecdc dc1a0afb

+4 -4
+4 -4
drivers/nvme/target/fc.c
··· 1174 1174 */ 1175 1175 if (iod->rqstdatalen < FCNVME_LSDESC_CRA_RQST_MINLEN) 1176 1176 ret = VERR_CR_ASSOC_LEN; 1177 - else if (rqst->desc_list_len < 1178 - cpu_to_be32(FCNVME_LSDESC_CRA_RQST_MIN_LISTLEN)) 1177 + else if (be32_to_cpu(rqst->desc_list_len) < 1178 + FCNVME_LSDESC_CRA_RQST_MIN_LISTLEN) 1179 1179 ret = VERR_CR_ASSOC_RQST_LEN; 1180 1180 else if (rqst->assoc_cmd.desc_tag != 1181 1181 cpu_to_be32(FCNVME_LSDESC_CREATE_ASSOC_CMD)) 1182 1182 ret = VERR_CR_ASSOC_CMD; 1183 - else if (rqst->assoc_cmd.desc_len < 1184 - cpu_to_be32(FCNVME_LSDESC_CRA_CMD_DESC_MIN_DESCLEN)) 1183 + else if (be32_to_cpu(rqst->assoc_cmd.desc_len) < 1184 + FCNVME_LSDESC_CRA_CMD_DESC_MIN_DESCLEN) 1185 1185 ret = VERR_CR_ASSOC_CMD_LEN; 1186 1186 else if (!rqst->assoc_cmd.ersp_ratio || 1187 1187 (be16_to_cpu(rqst->assoc_cmd.ersp_ratio) >=