diff --git a/include/spdk_internal/nvme_tcp.h b/include/spdk_internal/nvme_tcp.h index c0e7b32ad..072b8631d 100644 --- a/include/spdk_internal/nvme_tcp.h +++ b/include/spdk_internal/nvme_tcp.h @@ -226,7 +226,6 @@ nvme_tcp_pdu_calc_data_digest(struct nvme_tcp_pdu *pdu) assert(pad_length <= sizeof(pad)); crc32c = spdk_crc32c_update(pad, pad_length, crc32c); } - crc32c = crc32c ^ SPDK_CRC32C_XOR; return crc32c; } diff --git a/lib/nvme/nvme_tcp.c b/lib/nvme/nvme_tcp.c index 34f18be31..09395f67e 100644 --- a/lib/nvme/nvme_tcp.c +++ b/lib/nvme/nvme_tcp.c @@ -483,6 +483,7 @@ pdu_data_crc32_compute(struct nvme_tcp_pdu *pdu) } crc32c = nvme_tcp_pdu_calc_data_digest(pdu); + crc32c = crc32c ^ SPDK_CRC32C_XOR; MAKE_DIGEST_WORD(pdu->data_digest, crc32c); } @@ -1166,6 +1167,7 @@ nvme_tcp_pdu_payload_handle(struct nvme_tcp_qpair *tqpair, } crc32c = nvme_tcp_pdu_calc_data_digest(pdu); + crc32c = crc32c ^ SPDK_CRC32C_XOR; rc = MATCH_DIGEST_WORD(pdu->data_digest, crc32c); if (rc == 0) { SPDK_ERRLOG("data digest error on tqpair=(%p) with pdu=%p\n", tqpair, pdu); diff --git a/lib/nvmf/tcp.c b/lib/nvmf/tcp.c index 5d1295fa0..f2ea133ab 100644 --- a/lib/nvmf/tcp.c +++ b/lib/nvmf/tcp.c @@ -1006,6 +1006,7 @@ pdu_data_crc32_compute(struct nvme_tcp_pdu *pdu) } crc32c = nvme_tcp_pdu_calc_data_digest(pdu); + crc32c = crc32c ^ SPDK_CRC32C_XOR; MAKE_DIGEST_WORD(pdu->data_digest, crc32c); } @@ -1928,6 +1929,7 @@ nvmf_tcp_pdu_payload_handle(struct spdk_nvmf_tcp_qpair *tqpair, /* check data digest if need */ if (pdu->ddgst_enable) { crc32c = nvme_tcp_pdu_calc_data_digest(pdu); + crc32c = crc32c ^ SPDK_CRC32C_XOR; rc = MATCH_DIGEST_WORD(pdu->data_digest, crc32c); if (rc == 0) { SPDK_ERRLOG("Data digest error on tqpair=(%p) with pdu=%p\n", tqpair, pdu);